From c330f18cd581bfabba729227469cd3458e7b5b6e Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 29 Jul 2024 18:31:11 +0200 Subject: [PATCH 01/56] feat: route splitting between express and fastify --- package-lock.json | 579 +++++++++++++++--------- package.json | 16 +- src/api/controllers/cache-controller.ts | 38 +- src/api/init.ts | 73 ++- src/api/rosetta-validate.ts | 4 +- src/api/routes/status.ts | 64 ++- src/api/routes/v2/schemas.ts | 62 ++- src/api/schemas/responses/responses.ts | 46 ++ src/api/validate.ts | 6 +- src/index.ts | 43 +- 10 files changed, 644 insertions(+), 287 deletions(-) create mode 100644 src/api/schemas/responses/responses.ts diff --git a/package-lock.json b/package-lock.json index cf9e1342d..77412ad28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,12 +10,17 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/json-schema-ref-parser": "9.0.9", + "@fastify/cors": "9.0.1", + "@fastify/formbody": "7.4.0", + "@fastify/multipart": "8.3.0", + "@fastify/swagger": "8.15.0", + "@fastify/type-provider-typebox": "4.0.0", "@hirosystems/api-toolkit": "1.6.2", "@promster/express": "6.0.0", "@promster/server": "6.0.6", "@promster/types": "3.2.3", "@scure/base": "1.1.1", - "@sinclair/typebox": "0.31.28", + "@sinclair/typebox": "0.32.35", "@stacks/common": "6.10.0", "@stacks/encryption": "6.13.1", "@stacks/network": "6.11.3", @@ -24,7 +29,8 @@ "@types/express-list-endpoints": "4.0.1", "@types/lru-cache": "5.1.1", "@types/ws": "7.4.7", - "ajv": "6.12.6", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", "bignumber.js": "9.0.2", "bitcoinjs-lib": "6.1.0", "bluebird": "3.7.2", @@ -42,6 +48,8 @@ "evt": "1.10.1", "express": "4.19.2", "express-list-endpoints": "5.0.0", + "fastify": "4.28.1", + "fastify-metrics": "11.0.0", "getopts": "2.3.0", "http-proxy-middleware": "2.0.1", "jsonc-parser": "3.0.0", @@ -80,7 +88,6 @@ "@commitlint/cli": "19.2.2", "@commitlint/config-conventional": "10.0.0", "@stacks/eslint-config": "1.2.0", - "@types/ajv": "1.0.0", "@types/bluebird": "3.5.36", "@types/cors": "2.8.12", "@types/dotenv-flow": "3.2.0", @@ -104,7 +111,6 @@ "eslint": "8.29.0", "eslint-plugin-prettier": "4.2.1", "eslint-plugin-tsdoc": "0.2.17", - "fastify": "4.15.0", "husky": "4.3.8", "is-ci": "3.0.1", "jest": "29.7.0", @@ -118,7 +124,7 @@ "supertest": "4.0.2", "ts-jest": "29.1.1", "ts-node": "10.8.2", - "typescript": "4.7.4", + "typescript": "5.5.4", "why-is-node-running": "2.2.0" }, "engines": { @@ -1065,28 +1071,6 @@ "node": ">=v18" } }, - "node_modules/@commitlint/config-validator/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/@commitlint/ensure": { "version": "19.0.3", "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz", @@ -1242,20 +1226,6 @@ "typescript": ">=4" } }, - "node_modules/@commitlint/load/node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/@commitlint/message": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz", @@ -1770,6 +1740,28 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/@fastify/ajv-compiler": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", @@ -1780,42 +1772,37 @@ "fast-uri": "^2.0.0" } }, - "node_modules/@fastify/ajv-compiler/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@fastify/ajv-compiler/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "ajv": "^8.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/@fastify/ajv-compiler/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, "node_modules/@fastify/busboy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", - "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", - "dev": true, + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", "engines": { "node": ">=14" } }, "node_modules/@fastify/cors": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-8.4.1.tgz", - "integrity": "sha512-iYQJtrY3pFiDS5mo5zRaudzg2OcUdJ96PD6xfkKOOEilly5nnrFZx/W6Sce2T79xxlEn2qpU3t5+qS2phS369w==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-9.0.1.tgz", + "integrity": "sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==", "dependencies": { "fastify-plugin": "^4.0.0", - "mnemonist": "0.39.5" + "mnemonist": "0.39.6" } }, "node_modules/@fastify/deepmerge": { @@ -1836,10 +1823,32 @@ "fast-json-stringify": "^5.7.0" } }, + "node_modules/@fastify/formbody": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@fastify/formbody/-/formbody-7.4.0.tgz", + "integrity": "sha512-H3C6h1GN56/SMrZS8N2vCT2cZr7mIHzBHzOBa5OPpjfB/D6FzP9mMpE02ZzrFX0ANeh0BAJdoXKOF2e7IbV+Og==", + "dependencies": { + "fast-querystring": "^1.0.0", + "fastify-plugin": "^4.0.0" + } + }, + "node_modules/@fastify/multipart": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-8.3.0.tgz", + "integrity": "sha512-A8h80TTyqUzaMVH0Cr9Qcm6RxSkVqmhK/MVBYHYeRRSUbUYv08WecjWKSlG2aSnD4aGI841pVxAjC+G1GafUeQ==", + "dependencies": { + "@fastify/busboy": "^2.1.0", + "@fastify/deepmerge": "^1.0.0", + "@fastify/error": "^3.0.0", + "fastify-plugin": "^4.0.0", + "secure-json-parse": "^2.4.0", + "stream-wormhole": "^1.1.0" + } + }, "node_modules/@fastify/swagger": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.12.0.tgz", - "integrity": "sha512-IMRc0xYuzRvtFDMuaWHyVbvM7CuAi0g3o2jaVgLDvETXPrXWAMWsHYR5niIdWBDPgGUq+soHkag1DKXyhPDB0w==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.15.0.tgz", + "integrity": "sha512-zy+HEEKFqPMS2sFUsQU5X0MHplhKJvWeohBwTCkBAJA/GDYGLGUWQaETEhptiqxK7Hs0fQB9B4MDb3pbwIiCwA==", "dependencies": { "fastify-plugin": "^4.0.0", "json-schema-resolver": "^2.0.0", @@ -1857,11 +1866,11 @@ } }, "node_modules/@fastify/type-provider-typebox": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@fastify/type-provider-typebox/-/type-provider-typebox-3.5.0.tgz", - "integrity": "sha512-f48uGzvLflE/y4pvXOS8qjAC+mZmlqev9CPHnB8NDsBSL4EbeydO61IgPuzOkeNlAYeRP9Y56UOKj1XWFibgMw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@fastify/type-provider-typebox/-/type-provider-typebox-4.0.0.tgz", + "integrity": "sha512-kTlN0saC/+xhcQPyBjb3YONQAMjiD/EHlCRjQjsr5E3NFjS5K8ZX5LGzXYDRjSa+sV4y8gTL5Q7FlObePv4iTA==", "peerDependencies": { - "@sinclair/typebox": ">=0.26 <=0.31" + "@sinclair/typebox": ">=0.26 <=0.32" } }, "node_modules/@hirosystems/api-toolkit": { @@ -1886,6 +1895,23 @@ "node": ">=18" } }, + "node_modules/@hirosystems/api-toolkit/node_modules/@fastify/cors": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-8.5.0.tgz", + "integrity": "sha512-/oZ1QSb02XjP0IK1U0IXktEsw/dUBTxJOW7IpIeO8c/tNalw/KjoNSJv1Sf6eqoBPO+TDGkifq6ynFK3v68HFQ==", + "dependencies": { + "fastify-plugin": "^4.0.0", + "mnemonist": "0.39.6" + } + }, + "node_modules/@hirosystems/api-toolkit/node_modules/@fastify/type-provider-typebox": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@fastify/type-provider-typebox/-/type-provider-typebox-3.6.0.tgz", + "integrity": "sha512-HTeOLvirfGg0u1KGao3iXn5rZpYNqlrOmyDnXSXAbWVPa+mDQTTBNs/x5uZzOB6vFAqr0Xcf7x1lxOamNSYKjw==", + "peerDependencies": { + "@sinclair/typebox": ">=0.26 <=0.32" + } + }, "node_modules/@hirosystems/api-toolkit/node_modules/@sinclair/typebox": { "version": "0.28.20", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.28.20.tgz", @@ -1922,6 +1948,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@hirosystems/api-toolkit/node_modules/fastify-metrics": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/fastify-metrics/-/fastify-metrics-10.6.0.tgz", + "integrity": "sha512-QIPncCnwBOEObMn+VaRhsBC1ox8qEsaiYF2sV/A1UbXj7ic70W8/HNn/hlEC2W8JQbBeZMx++o1um2fPfhsFDQ==", + "dependencies": { + "fastify-plugin": "^4.3.0", + "prom-client": "^14.2.0" + }, + "peerDependencies": { + "fastify": ">=4" + } + }, "node_modules/@hirosystems/api-toolkit/node_modules/node-pg-migrate": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/node-pg-migrate/-/node-pg-migrate-6.2.2.tgz", @@ -2006,6 +2044,17 @@ "node": ">=12" } }, + "node_modules/@hirosystems/api-toolkit/node_modules/prom-client": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", + "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", + "dependencies": { + "tdigest": "^0.1.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@hirosystems/api-toolkit/node_modules/yargs": { "version": "17.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", @@ -2580,6 +2629,28 @@ "resolve": "~1.19.0" } }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", @@ -2819,6 +2890,14 @@ "@octokit/openapi-types": "^22.1.0" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2958,9 +3037,9 @@ } }, "node_modules/@sinclair/typebox": { - "version": "0.31.28", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.31.28.tgz", - "integrity": "sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==" + "version": "0.32.35", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.32.35.tgz", + "integrity": "sha512-Ul3YyOTU++to8cgNkttakC0dWvpERr6RYoHO2W47DLbFvrwBDJUY31B1sImH6JZSYc4Kt4PyHtoPNu+vL2r2dA==" }, "node_modules/@sinonjs/commons": { "version": "3.0.0", @@ -3207,6 +3286,22 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@stacks/eslint-config/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/@stacks/eslint-config/node_modules/eslint": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", @@ -3329,6 +3424,12 @@ "node": ">=10.13.0" } }, + "node_modules/@stacks/eslint-config/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/@stacks/network": { "version": "6.11.3", "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.11.3.tgz", @@ -3487,16 +3588,6 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, - "node_modules/@types/ajv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/ajv/-/ajv-1.0.0.tgz", - "integrity": "sha512-yGSqw9/QKd5FXbTNrSANcJ6IHWeNhA+gokXqmlPquJgLDC87d4g2FGPs+AlCeGG0GuZXmPq42hOFA2hnPymCLw==", - "deprecated": "This is a stub types definition for ajv (https://github.com/epoberezkin/ajv). ajv provides its own type definitions, so you don't need @types/ajv installed!", - "dev": true, - "dependencies": { - "ajv": "*" - } - }, "node_modules/@types/babel__core": { "version": "7.20.3", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz", @@ -4468,14 +4559,14 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4483,9 +4574,9 @@ } }, "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dependencies": { "ajv": "^8.0.0" }, @@ -4498,25 +4589,10 @@ } } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "node_modules/ajv/node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" }, "node_modules/ansi-colors": { "version": "4.1.3", @@ -4593,11 +4669,6 @@ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" - }, "node_modules/are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", @@ -4754,13 +4825,12 @@ } }, "node_modules/avvio": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.2.1.tgz", - "integrity": "sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.3.2.tgz", + "integrity": "sha512-st8e519GWHa/azv8S87mcJvZs4WsgTBjOw/Ih1CP6u+8SZvcOeAYNG6JbsIrAUUJJ7JfmrnOkR8ipDS+u9SIRQ==", "dependencies": { - "archy": "^1.0.0", - "debug": "^4.0.0", - "fastq": "^1.6.1" + "@fastify/error": "^3.3.0", + "fastq": "^1.17.1" } }, "node_modules/aws-sign2": { @@ -6726,6 +6796,22 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -6779,6 +6865,12 @@ "node": ">=10.13.0" } }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -7138,26 +7230,22 @@ "rfdc": "^1.2.0" } }, - "node_modules/fast-json-stringify/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/fast-json-stringify/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "ajv": "^8.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/fast-json-stringify/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -7191,48 +7279,60 @@ "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==" }, "node_modules/fastify": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.15.0.tgz", - "integrity": "sha512-m/CaRN8nf5uyYdrDe2qqq+0z3oGyE+A++qlKQoLJTI4WI0nWK9D6R3FxXQ3MVwt/md977GMR4F43pE9oqrS2zw==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.28.1.tgz", + "integrity": "sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], "dependencies": { "@fastify/ajv-compiler": "^3.5.0", - "@fastify/error": "^3.0.0", - "@fastify/fast-json-stringify-compiler": "^4.2.0", + "@fastify/error": "^3.4.0", + "@fastify/fast-json-stringify-compiler": "^4.3.0", "abstract-logging": "^2.0.1", - "avvio": "^8.2.0", - "fast-content-type-parse": "^1.0.0", - "find-my-way": "^7.6.0", - "light-my-request": "^5.6.1", - "pino": "^8.5.0", - "process-warning": "^2.0.0", + "avvio": "^8.3.0", + "fast-content-type-parse": "^1.1.0", + "fast-json-stringify": "^5.8.0", + "find-my-way": "^8.0.0", + "light-my-request": "^5.11.0", + "pino": "^9.0.0", + "process-warning": "^3.0.0", "proxy-addr": "^2.0.7", "rfdc": "^1.3.0", - "secure-json-parse": "^2.5.0", - "semver": "^7.3.7", - "tiny-lru": "^10.0.0" + "secure-json-parse": "^2.7.0", + "semver": "^7.5.4", + "toad-cache": "^3.3.0" } }, "node_modules/fastify-metrics": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/fastify-metrics/-/fastify-metrics-10.3.3.tgz", - "integrity": "sha512-TmMcfrMWBSbA7yk31tFtJnWKtNXLSO7jmTRIjPX9HKC4pLmyd0JnOQ3r9XCYnev6NL9/eVRXxNfrsqQdKTLZkw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/fastify-metrics/-/fastify-metrics-11.0.0.tgz", + "integrity": "sha512-2nv0pzkuRVRuAmW3fR2vh1FQF7sV/mgzOJ8cz3HjUzByudWvx2IOHKnJLWtUohiD1AaI2QxtLQKTDZv/nASBRQ==", "dependencies": { "fastify-plugin": "^4.3.0", - "prom-client": "^14.2.0" + "prom-client": "^15.1.0" }, "peerDependencies": { "fastify": ">=4" } }, "node_modules/fastify-metrics/node_modules/prom-client": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.1.3.tgz", + "integrity": "sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==", "dependencies": { + "@opentelemetry/api": "^1.4.0", "tdigest": "^0.1.1" }, "engines": { - "node": ">=10" + "node": "^16 || ^18 || >=20" } }, "node_modules/fastify-plugin": { @@ -7264,39 +7364,54 @@ } }, "node_modules/fastify/node_modules/pino": { - "version": "8.16.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.16.1.tgz", - "integrity": "sha512-3bKsVhBmgPjGV9pyn4fO/8RtoVDR8ssW1ev819FsRXlRNgW8gR/9Kx+gCK4UPWd4JjrRDLWpzd/pb1AyWm3MGA==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.3.2.tgz", + "integrity": "sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "v1.1.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^2.0.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.0.0" + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, "node_modules/fastify/node_modules/pino-abstract-transport": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", - "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", "dependencies": { "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, + "node_modules/fastify/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==" + }, + "node_modules/fastify/node_modules/pino/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==" + }, + "node_modules/fastify/node_modules/process-warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" + }, "node_modules/fastify/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -7308,6 +7423,14 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/fastify/node_modules/sonic-boom": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", + "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, "node_modules/fastify/node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -7316,10 +7439,18 @@ "node": ">= 10.x" } }, + "node_modules/fastify/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dependencies": { + "real-require": "^0.2.0" + } + }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dependencies": { "reusify": "^1.0.4" } @@ -7387,13 +7518,13 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/find-my-way": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.7.0.tgz", - "integrity": "sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.0.tgz", + "integrity": "sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-querystring": "^1.0.0", - "safe-regex2": "^2.0.0" + "safe-regex2": "^3.1.0" }, "engines": { "node": ">=14" @@ -7906,6 +8037,26 @@ "node": ">=6" } }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/has": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", @@ -9490,9 +9641,9 @@ } }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -10119,9 +10270,9 @@ } }, "node_modules/mnemonist": { - "version": "0.39.5", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.5.tgz", - "integrity": "sha512-FPUtkhtJ0efmEFGpU14x7jGbTB+s18LrzRL2KgoWz9YvcY3cPomz8tih01GbHwnGk/OmkOKfqd/RAQoc8Lm7DQ==", + "version": "0.39.6", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.6.tgz", + "integrity": "sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==", "dependencies": { "obliterator": "^2.0.1" } @@ -11814,11 +11965,11 @@ } }, "node_modules/ret": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", - "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz", + "integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==", "engines": { - "node": ">=4" + "node": ">=10" } }, "node_modules/retry": { @@ -12072,11 +12223,11 @@ } }, "node_modules/safe-regex2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", - "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-3.1.0.tgz", + "integrity": "sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==", "dependencies": { - "ret": "~0.2.0" + "ret": "~0.4.0" } }, "node_modules/safe-stable-stringify": { @@ -12569,6 +12720,14 @@ "node": ">=0.10.0" } }, + "node_modules/stream-wormhole": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stream-wormhole/-/stream-wormhole-1.1.0.tgz", + "integrity": "sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/strict-event-emitter-types": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz", @@ -12928,14 +13087,6 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "node_modules/tiny-lru": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-10.4.1.tgz", - "integrity": "sha512-buLIzw7ppqymuO3pt10jHk/6QMeZLbidihMQU+N6sogF6EnBzG0qtDWIHuhw1x3dyNgVL/KTGIZsTK81+yCzLg==", - "engines": { - "node": ">=12" - } - }, "node_modules/tiny-secp256k1": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-2.2.1.tgz", @@ -12973,6 +13124,14 @@ "node": ">=8.0" } }, + "node_modules/toad-cache": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz", + "integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==", + "engines": { + "node": ">=12" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -13348,15 +13507,15 @@ "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/uint8array-tools": { diff --git a/package.json b/package.json index 716970144..2ca1f866f 100644 --- a/package.json +++ b/package.json @@ -85,12 +85,17 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": "9.0.9", + "@fastify/cors": "9.0.1", + "@fastify/formbody": "7.4.0", + "@fastify/multipart": "8.3.0", + "@fastify/swagger": "8.15.0", + "@fastify/type-provider-typebox": "4.0.0", "@hirosystems/api-toolkit": "1.6.2", "@promster/express": "6.0.0", "@promster/server": "6.0.6", "@promster/types": "3.2.3", "@scure/base": "1.1.1", - "@sinclair/typebox": "0.31.28", + "@sinclair/typebox": "0.32.35", "@stacks/common": "6.10.0", "@stacks/encryption": "6.13.1", "@stacks/network": "6.11.3", @@ -99,7 +104,8 @@ "@types/express-list-endpoints": "4.0.1", "@types/lru-cache": "5.1.1", "@types/ws": "7.4.7", - "ajv": "6.12.6", + "ajv": "8.17.1", + "ajv-formats": "3.0.1", "bignumber.js": "9.0.2", "bitcoinjs-lib": "6.1.0", "bluebird": "3.7.2", @@ -117,6 +123,8 @@ "evt": "1.10.1", "express": "4.19.2", "express-list-endpoints": "5.0.0", + "fastify": "4.28.1", + "fastify-metrics": "11.0.0", "getopts": "2.3.0", "http-proxy-middleware": "2.0.1", "jsonc-parser": "3.0.0", @@ -155,7 +163,6 @@ "@commitlint/cli": "19.2.2", "@commitlint/config-conventional": "10.0.0", "@stacks/eslint-config": "1.2.0", - "@types/ajv": "1.0.0", "@types/bluebird": "3.5.36", "@types/cors": "2.8.12", "@types/dotenv-flow": "3.2.0", @@ -179,7 +186,6 @@ "eslint": "8.29.0", "eslint-plugin-prettier": "4.2.1", "eslint-plugin-tsdoc": "0.2.17", - "fastify": "4.15.0", "husky": "4.3.8", "is-ci": "3.0.1", "jest": "29.7.0", @@ -193,7 +199,7 @@ "supertest": "4.0.2", "ts-jest": "29.1.1", "ts-node": "10.8.2", - "typescript": "4.7.4", + "typescript": "5.5.4", "why-is-node-running": "2.2.0" }, "optionalDependencies": { diff --git a/src/api/controllers/cache-controller.ts b/src/api/controllers/cache-controller.ts index d660e5e60..9af6b307d 100644 --- a/src/api/controllers/cache-controller.ts +++ b/src/api/controllers/cache-controller.ts @@ -5,6 +5,7 @@ import { asyncHandler } from '../async-handler'; import { PgStore } from '../../datastore/pg-store'; import { logger } from '../../logger'; import { sha256 } from '@hirosystems/api-toolkit'; +import { FastifyReply, FastifyRequest } from 'fastify'; const CACHE_OK = Symbol('cache_ok'); @@ -247,7 +248,7 @@ export function getETagCacheHandler( async function calculateETag( db: PgStore, etagType: ETagType, - req: Request + req: Request | FastifyRequest ): Promise { switch (etagType) { case ETagType.chainTip: @@ -284,7 +285,7 @@ async function calculateETag( case ETagType.transaction: try { - const { tx_id } = req.params; + const tx_id = (req.params as { tx_id: string }).tx_id; const normalizedTxId = normalizeHashString(tx_id); if (normalizedTxId === false) { return ETAG_EMPTY; @@ -306,3 +307,36 @@ async function calculateETag( } } } + +async function handleCache(type: ETagType, request: FastifyRequest, reply: FastifyReply) { + const metrics = getETagMetrics(); + const ifNoneMatch = parseIfNoneMatchHeader(request.headers['if-none-match']); + const etag = await calculateETag(request.server.db, type, request); + switch (type) { + case ETagType.chainTip: + if (!ifNoneMatch) metrics.chainTipCacheNoHeader.inc(); + else if (etag && typeof etag === 'string' && ifNoneMatch.includes(etag)) + metrics.chainTipCacheHits.inc(); + else metrics.chainTipCacheMisses.inc(); + break; + case ETagType.mempool: + if (!ifNoneMatch) metrics.mempoolCacheNoHeader.inc(); + else if (etag && typeof etag === 'string' && ifNoneMatch.includes(etag)) + metrics.mempoolCacheHits.inc(); + else metrics.mempoolCacheMisses.inc(); + break; + case ETagType.transaction: + break; + } + if (etag) { + if (ifNoneMatch && typeof etag === 'string' && ifNoneMatch.includes(etag)) { + await reply.header('Cache-Control', CACHE_CONTROL_MUST_REVALIDATE).code(304).send(); + } else if (typeof etag === 'string') { + void reply.headers({ 'Cache-Control': CACHE_CONTROL_MUST_REVALIDATE, ETag: `"${etag}"` }); + } + } +} + +export function handleChainTipCache(request: FastifyRequest, reply: FastifyReply) { + return handleCache(ETagType.chainTip, request, reply); +} diff --git a/src/api/init.ts b/src/api/init.ts index b4ebd2b78..741c3916b 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -30,7 +30,7 @@ import * as pathToRegex from 'path-to-regexp'; import * as expressListEndpoints from 'express-list-endpoints'; import { createMiddleware as createPrometheusMiddleware } from '@promster/express'; import { createMicroblockRouter } from './routes/microblock'; -import { createStatusRouter } from './routes/status'; +import { StatusRoutes } from './routes/status'; import { createTokenRouter } from './routes/tokens'; import { createFeeRateRouter } from './routes/fee-rate'; import { setResponseNonCacheable } from './controllers/cache-controller'; @@ -43,6 +43,7 @@ import { WebSocketTransmitter } from './routes/ws/web-socket-transmitter'; import { createPoxEventsRouter } from './routes/pox'; import { logger, loggerMiddleware } from '../logger'; import { + PINO_LOGGER_CONFIG, SERVER_VERSION, isPgConnectionError, isProdEnv, @@ -57,8 +58,21 @@ import { createV2SmartContractsRouter } from './routes/v2/smart-contracts'; import { createV2AddressesRouter } from './routes/v2/addresses'; import { createPoxRouter } from './routes/v2/pox'; +import Fastify, { FastifyInstance } from 'fastify'; +import FastifyMetrics from 'fastify-metrics'; +import FastifyCors from '@fastify/cors'; +import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; + +declare module 'fastify' { + interface FastifyInstance { + db: PgStore; + writeDb?: PgWriteStore; + } +} + export interface ApiServer { expressApp: express.Express; + fastifyApp: FastifyInstance; server: Server; ws: WebSocketTransmitter; address: string; @@ -191,7 +205,6 @@ export async function startApiServer(opts: { res.set('Cache-Control', 'no-store'); next(); }); - router.use('/', createStatusRouter(datastore)); router.use( '/v1', (() => { @@ -383,7 +396,60 @@ export async function startApiServer(opts: { regexp: /^\/v2(.*)/, }); - const server = createServer(app); + const fastify = Fastify({ + trustProxy: true, + logger: PINO_LOGGER_CONFIG, + }).withTypeProvider(); + fastify.decorate('db', opts.datastore); + fastify.decorate('writeDb', opts.writeDatastore); + await fastify.register(FastifyMetrics, { endpoint: null }); + await fastify.register(FastifyCors, { exposedHeaders: ['X-API-Version'] }); + fastify.addHook('preHandler', async (_, reply) => { + // Set API version in all responses. + void reply.header( + 'X-API-Version', + `${SERVER_VERSION.tag} (${SERVER_VERSION.branch}:${SERVER_VERSION.commit})` + ); + // Set caching on all routes to be disabled by default, individual routes can override. + void reply.header('Cache-Control', 'no-store'); + }); + fastify.get('/', async (_, reply) => { + await reply.code(301).redirect('/extended'); + }); + fastify.get('/extended/v1/status', async (_, reply) => { + await reply.code(301).redirect('/extended'); + }); + await fastify.register(StatusRoutes); + + // This will be a messy list as routes are migrated to Fastify, + // However, it's the most straightforward way to split between Fastify and Express without + // introducing a bunch of problamatic middleware side-effects. + // Once all `/extended` routes are migrated it will be simplified to something like "only use Express for Rosetta routes". + const fastifyPaths = new RegExp( + [ + '^/fastify', + '^/$', + '^/extended$', + '^/extended/v1/status', + // '^/extended/v1/TODO', + // '^/extended/v1/TODO', + // '^/extended/v1/TODO', + // '^/extended/v1/TODO', + ].join('|'), + 'i' + ); + + const server = createServer(async (req, res) => { + const path = new URL(req.url as string, 'http://x').pathname; + if (fastifyPaths.test(path)) { + // handle with fastify + await fastify.ready(); + fastify.server.emit('request', req, res); + } else { + // handle with express + app(req, res); + } + }); const serverSockets = new Set(); server.on('connection', socket => { @@ -452,6 +518,7 @@ export async function startApiServer(opts: { const addrStr = typeof addr === 'string' ? addr : `${addr.address}:${addr.port}`; return { expressApp: app, + fastifyApp: fastify, server: server, ws: ws, address: addrStr, diff --git a/src/api/rosetta-validate.ts b/src/api/rosetta-validate.ts index d35179d60..ad6ca4c45 100644 --- a/src/api/rosetta-validate.ts +++ b/src/api/rosetta-validate.ts @@ -1,4 +1,4 @@ -import * as Ajv from 'ajv'; +import Ajv from 'ajv'; import { isValidPrincipal } from '../helpers'; import { RosettaConstants, @@ -24,7 +24,7 @@ export interface ValidSchema { export async function validate(schemaFilePath: string, data: any): Promise { const resolvedFilePath = getDocSchemaFile(schemaFilePath); const schemaDef = await dereferenceSchema(resolvedFilePath); - const ajv = new Ajv({ schemaId: 'auto' }); + const ajv = new Ajv(); const valid = await ajv.validate(schemaDef, data); if (!valid) { logger.error(`Schema validation:\n\n ${JSON.stringify(ajv.errors, null, 2)}`); diff --git a/src/api/routes/status.ts b/src/api/routes/status.ts index 2e3e58814..c07ce45c0 100644 --- a/src/api/routes/status.ts +++ b/src/api/routes/status.ts @@ -1,25 +1,39 @@ -import * as express from 'express'; -import { ServerStatusResponse } from '@stacks/stacks-blockchain-api-types'; -import { getETagCacheHandler, setETagCacheHeaders } from '../controllers/cache-controller'; -import { PgStore } from '../../datastore/pg-store'; +import { FastifyPluginAsync } from 'fastify'; +import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { ServerStatusResponse, ServerStatusResponseSchema } from '../schemas/responses/responses'; +import { handleChainTipCache } from '../controllers/cache-controller'; import { SERVER_VERSION } from '@hirosystems/api-toolkit'; -export function createStatusRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - const statusHandler = async (_: Request, res: any) => { +export const StatusRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + const schema = { + operationId: 'get_status', + summary: 'API status', + description: + 'Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information.', + tags: ['Info'], + response: { + 200: ServerStatusResponseSchema, + }, + }; + + const getStatus = async () => { + const response: ServerStatusResponse = { + server_version: `stacks-blockchain-api ${SERVER_VERSION.tag} (${SERVER_VERSION.branch}:${SERVER_VERSION.commit})`, + status: 'ready', + }; try { - const response: ServerStatusResponse = { - server_version: `stacks-blockchain-api ${SERVER_VERSION.tag} (${SERVER_VERSION.branch}:${SERVER_VERSION.commit})`, - status: 'ready', - }; - const poxForceUnlockHeights = await db.getPoxForceUnlockHeights(); + const poxForceUnlockHeights = await fastify.db.getPoxForceUnlockHeights(); if (poxForceUnlockHeights.found) { response.pox_v1_unlock_height = poxForceUnlockHeights.result.pox1UnlockHeight as number; response.pox_v2_unlock_height = poxForceUnlockHeights.result.pox2UnlockHeight as number; response.pox_v3_unlock_height = poxForceUnlockHeights.result.pox3UnlockHeight as number; } - const chainTip = await db.getChainTip(db.sql); + const chainTip = await fastify.db.getChainTip(fastify.db.sql); if (chainTip.block_height > 0) { response.chain_tip = { block_height: chainTip.block_height, @@ -30,17 +44,19 @@ export function createStatusRouter(db: PgStore): express.Router { burn_block_height: chainTip.burn_block_height, }; } - setETagCacheHeaders(res); - res.json(response); } catch (error) { - const response: ServerStatusResponse = { - status: 'ready', - }; - res.json(response); + // ignore error } + return response; }; - router.get('/', cacheHandler, statusHandler); - router.post('/', cacheHandler, statusHandler); - return router; -} + fastify.get('/extended', { schema, preHandler: handleChainTipCache }, async (_, reply) => { + await reply.send(await getStatus()); + }); + + fastify.post('/extended', { schema, preHandler: handleChainTipCache }, async (_, reply) => { + await reply.send(await getStatus()); + }); + + await Promise.resolve(); +}; diff --git a/src/api/routes/v2/schemas.ts b/src/api/routes/v2/schemas.ts index 2022f11cd..b7b6b7893 100644 --- a/src/api/routes/v2/schemas.ts +++ b/src/api/routes/v2/schemas.ts @@ -2,9 +2,25 @@ import { Type, Static, TSchema } from '@sinclair/typebox'; import { TypeCompiler } from '@sinclair/typebox/compiler'; import { ResourceType, pagingQueryLimits } from '../../../api/pagination'; import { Request, Response } from 'express'; -import * as Ajv from 'ajv'; - -const ajv = new Ajv({ coerceTypes: true }); +import Ajv, { ValidateFunction } from 'ajv'; +import addFormats from 'ajv-formats'; + +const ajv = addFormats(new Ajv({ coerceTypes: true }), [ + 'date-time', + 'time', + 'date', + 'email', + 'hostname', + 'ipv4', + 'ipv6', + 'uri', + 'uri-reference', + 'uuid', + 'uri-template', + 'json-pointer', + 'relative-json-pointer', + 'regex', +]); /** * Validate request query parameters with a TypeBox compiled schema @@ -16,7 +32,7 @@ const ajv = new Ajv({ coerceTypes: true }); export function validRequestQuery( req: Request, res: Response, - compiledType: Ajv.ValidateFunction + compiledType: ValidateFunction ): boolean { if (!compiledType(req.query)) { // TODO: Return a more user-friendly error @@ -36,7 +52,7 @@ export function validRequestQuery( export function validRequestParams( req: Request, res: Response, - compiledType: Ajv.ValidateFunction + compiledType: ValidateFunction ): boolean { if (!compiledType(req.params)) { // TODO: Return a more user-friendly error @@ -88,35 +104,37 @@ export const PoxSignerLimitParamSchema = Type.Integer({ description: 'PoX signers per page', }); -const BurnBlockHashParamSchema = Type.RegExp(/^(0x)?[a-fA-F0-9]{64}$/i, { +const BurnBlockHashParamSchema = Type.String({ + pattern: '^(0x)?[a-fA-F0-9]{64}$', title: 'Burn block hash', description: 'Burn block hash', examples: ['0000000000000000000452773967cdd62297137cdaf79950c5e8bb0c62075133'], }); export const CompiledBurnBlockHashParam = ajv.compile(BurnBlockHashParamSchema); -const BurnBlockHeightParamSchema = Type.RegExp(/^[0-9]+$/, { +const BurnBlockHeightParamSchema = Type.String({ + pattern: '^[0-9]+$', title: 'Burn block height', description: 'Burn block height', examples: ['777678'], }); -const AddressParamSchema = Type.RegExp(/^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}/, { +const AddressParamSchema = Type.String({ + pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}', title: 'STX Address', description: 'STX Address', examples: ['SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP'], }); -const SmartContractIdParamSchema = Type.RegExp( - /^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}\.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$/, - { - title: 'Smart Contract ID', - description: 'Smart Contract ID', - examples: ['SP000000000000000000002Q6VF78.pox-3'], - } -); +const SmartContractIdParamSchema = Type.String({ + pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$', + title: 'Smart Contract ID', + description: 'Smart Contract ID', + examples: ['SP000000000000000000002Q6VF78.pox-3'], +}); -const TransactionIdParamSchema = Type.RegExp(/^(0x)?[a-fA-F0-9]{64}$/i, { +const TransactionIdParamSchema = Type.String({ + pattern: '^(0x)?[a-fA-F0-9]{64}$', title: 'Transaction ID', description: 'Transaction ID', examples: ['0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6'], @@ -176,9 +194,7 @@ export type BlockParams = Static; export const CompiledBlockParams = ajv.compile(BlockParamsSchema); const PoxCycleParamsSchema = Type.Object( - { - cycle_number: Type.RegExp(/^[0-9]+$/), - }, + { cycle_number: Type.String({ pattern: '^[0-9]+$' }) }, { additionalProperties: false } ); export type PoxCycleParams = Static; @@ -186,8 +202,10 @@ export const CompiledPoxCycleParams = ajv.compile(PoxCycleParamsSchema); const PoxCycleSignerParamsSchema = Type.Object( { - cycle_number: Type.RegExp(/^[0-9]+$/), - signer_key: Type.RegExp(/^(0x)?[a-fA-F0-9]{66}$/i), + cycle_number: Type.String({ pattern: '^[0-9]+$' }), + signer_key: Type.String({ + pattern: '^(0x)?[a-fA-F0-9]{66}$', + }), }, { additionalProperties: false } ); diff --git a/src/api/schemas/responses/responses.ts b/src/api/schemas/responses/responses.ts new file mode 100644 index 000000000..83124b245 --- /dev/null +++ b/src/api/schemas/responses/responses.ts @@ -0,0 +1,46 @@ +import { Static, TSchema, Type } from '@sinclair/typebox'; + +const Nullable = (schema: T) => Type.Union([schema, Type.Null()]); +const OptionalNullable = (schema: T) => Type.Optional(Nullable(schema)); + +export const ServerStatusResponseSchema = Type.Object( + { + server_version: Type.String({ + description: 'the server version that is currently running', + }), + status: Type.String({ + description: 'the current server status', + }), + pox_v1_unlock_height: OptionalNullable(Type.Integer()), + pox_v2_unlock_height: OptionalNullable(Type.Integer()), + pox_v3_unlock_height: OptionalNullable(Type.Integer()), + chain_tip: OptionalNullable( + Type.Object({ + block_height: Type.Integer({ + description: 'the current block height', + }), + block_hash: Type.String({ + description: 'the current block hash', + }), + index_block_hash: Type.String({ + description: 'the current index block hash', + }), + microblock_hash: Type.Optional( + Type.String({ + description: 'the current microblock hash', + }) + ), + microblock_sequence: Type.Optional( + Type.Integer({ + description: 'the current microblock sequence number', + }) + ), + burn_block_height: Type.Integer({ + description: 'the current burn chain block height', + }), + }) + ), + }, + { title: 'Api Status Response' } +); +export type ServerStatusResponse = Static; diff --git a/src/api/validate.ts b/src/api/validate.ts index 1b96e0ce4..2dfacbef1 100644 --- a/src/api/validate.ts +++ b/src/api/validate.ts @@ -1,5 +1,5 @@ import * as path from 'path'; -import * as Ajv from 'ajv'; +import Ajv from 'ajv'; import * as RefParser from '@apidevtools/json-schema-ref-parser'; import { getOrAddAsync, REPO_DIR } from '../helpers'; import { logger } from '../logger'; @@ -15,8 +15,8 @@ export async function validate(schemaFilePath: string, data: any) { if (process.env.NODE_ENV !== 'development') return; const resolvedFilePath = getDocSchemaFile(schemaFilePath); const schemaDef = await dereferenceSchema(resolvedFilePath); - const ajv = new Ajv({ schemaId: 'auto' }); - const valid = await ajv.validate(schemaDef, data); + const ajv = new Ajv(); + const valid = ajv.validate(schemaDef, data); if (!valid) { logger.warn(`Schema validation:\n\n ${JSON.stringify(ajv.errors, null, 2)}`); } diff --git a/src/index.ts b/src/index.ts index b4af319b3..119dab6de 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,11 +5,11 @@ import { chainIdConfigurationCheck, } from './helpers'; import * as sourceMapSupport from 'source-map-support'; -import { startApiServer } from './api/init'; +import { ApiServer, startApiServer } from './api/init'; import { startProfilerServer } from './inspector-util'; import { startEventServer } from './event-stream/event-server'; import { StacksCoreRpcClient } from './core-rpc/client'; -import { createServer as createPrometheusServer } from '@promster/server'; +import { getSummary } from '@promster/metrics'; import { OfflineDummyStore } from './datastore/offline-dummy-store'; import { Socket } from 'net'; import * as getopts from 'getopts'; @@ -24,9 +24,11 @@ import { isProdEnv, numberToHex, parseBoolean, + PINO_LOGGER_CONFIG, registerShutdownConfig, timeout, } from '@hirosystems/api-toolkit'; +import Fastify from 'fastify'; enum StacksApiMode { /** @@ -161,16 +163,18 @@ async function init(): Promise { }); } + let apiServer: ApiServer; if ( apiMode === StacksApiMode.default || apiMode === StacksApiMode.readOnly || apiMode === StacksApiMode.offline ) { - const apiServer = await startApiServer({ + apiServer = await startApiServer({ datastore: dbStore, writeDatastore: dbWriteStore, chainId: getApiConfiguredChainID(), }); + apiServer.fastifyApp.metrics; logger.info(`API server listening on: http://${apiServer.address}`); registerShutdownConfig({ name: 'API Server', @@ -202,24 +206,31 @@ async function init(): Promise { } if (isProdEnv) { - const prometheusServer = await createPrometheusServer({ port: 9153 }); - logger.info(`@promster/server started on port 9153.`); - const sockets = new Set(); - prometheusServer.on('connection', socket => { - sockets.add(socket); - socket.once('close', () => sockets.delete(socket)); + const promServer = Fastify({ + trustProxy: true, + logger: PINO_LOGGER_CONFIG, + }); + promServer.route({ + url: '/metrics', + method: 'GET', + logLevel: 'info', + handler: async (_, reply) => { + let fastifyMetrics: string = ''; + if (apiServer) { + fastifyMetrics = await apiServer.fastifyApp.metrics.client.register.metrics(); + } + const metrics: string = await getSummary(); + await reply.type('text/plain').send(metrics + '\n\n' + fastifyMetrics); + }, }); registerShutdownConfig({ - name: 'Prometheus', + name: 'Prometheus Server', + forceKillable: false, handler: async () => { - for (const socket of sockets) { - socket.destroy(); - sockets.delete(socket); - } - await Promise.resolve(prometheusServer.close()); + await promServer.close(); }, - forceKillable: true, }); + await promServer.listen({ host: '0.0.0.0', port: 9153 }); } } From 93e9aae4b56d75f3968b9207f44ecfbf4f721a05 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Tue, 30 Jul 2024 18:48:00 +0200 Subject: [PATCH 02/56] feat: refactor `/extended/v1/tx/*` endpoints to fastify --- src/api/controllers/cache-controller.ts | 8 + src/api/controllers/db-controller.ts | 97 ++- src/api/init.ts | 5 +- src/api/routes/address.ts | 12 +- src/api/routes/microblock.ts | 2 +- src/api/routes/search.ts | 16 +- src/api/routes/tokens.ts | 19 +- src/api/routes/tx.ts | 754 +++++++++++------- src/api/routes/v2/blocks.ts | 4 +- src/api/routes/v2/helpers.ts | 2 +- src/api/routes/ws/web-socket-transmitter.ts | 12 +- .../schemas/entities/mempool-transactions.ts | 104 +++ src/api/schemas/entities/post-conditions.ts | 69 ++ .../schemas/entities/transaction-events.ts | 156 ++++ src/api/schemas/entities/transactions.ts | 433 ++++++++++ src/api/schemas/params.ts | 83 ++ src/api/schemas/responses/responses.ts | 44 +- src/api/schemas/util.ts | 26 + src/datastore/pg-store.ts | 4 +- 19 files changed, 1519 insertions(+), 331 deletions(-) create mode 100644 src/api/schemas/entities/mempool-transactions.ts create mode 100644 src/api/schemas/entities/post-conditions.ts create mode 100644 src/api/schemas/entities/transaction-events.ts create mode 100644 src/api/schemas/entities/transactions.ts create mode 100644 src/api/schemas/params.ts create mode 100644 src/api/schemas/util.ts diff --git a/src/api/controllers/cache-controller.ts b/src/api/controllers/cache-controller.ts index 9af6b307d..75c9d4065 100644 --- a/src/api/controllers/cache-controller.ts +++ b/src/api/controllers/cache-controller.ts @@ -340,3 +340,11 @@ async function handleCache(type: ETagType, request: FastifyRequest, reply: Fasti export function handleChainTipCache(request: FastifyRequest, reply: FastifyReply) { return handleCache(ETagType.chainTip, request, reply); } + +export async function handleMempoolCache(request: FastifyRequest, reply: FastifyReply) { + return handleCache(ETagType.mempool, request, reply); +} + +export async function handleTransactionCache(request: FastifyRequest, reply: FastifyReply) { + return handleCache(ETagType.transaction, request, reply); +} diff --git a/src/api/controllers/db-controller.ts b/src/api/controllers/db-controller.ts index 82198a417..3ddc79738 100644 --- a/src/api/controllers/db-controller.ts +++ b/src/api/controllers/db-controller.ts @@ -12,36 +12,11 @@ import { } from 'stacks-encoding-native-js'; import { - AbstractMempoolTransaction, - AbstractTransaction, - BaseTransaction, Block, - CoinbaseTransactionMetadata, - ContractCallTransactionMetadata, - MempoolTransaction, - MempoolTransactionStatus, Microblock, - PoisonMicroblockTransactionMetadata, RosettaBlock, RosettaParentBlockIdentifier, RosettaTransaction, - SmartContractTransactionMetadata, - TenureChangeTransactionMetadata, - TokenTransferTransactionMetadata, - Transaction, - TransactionAnchorModeType, - TransactionEvent, - TransactionEventFungibleAsset, - TransactionEventNonFungibleAsset, - TransactionEventSmartContractLog, - TransactionEventStxAsset, - TransactionEventStxLock, - TransactionFound, - TransactionList, - TransactionMetadata, - TransactionNotFound, - TransactionStatus, - TransactionType, } from '@stacks/stacks-blockchain-api-types'; import { @@ -68,6 +43,64 @@ import { PgStore } from '../../datastore/pg-store'; import { SyntheticPoxEventName } from '../../pox-helpers'; import { logger } from '../../logger'; +import { + AbstractTransaction, + BaseTransaction, + CoinbaseTransactionMetadata, + ContractCallTransactionMetadata, + PoisonMicroblockTransactionMetadata, + SmartContractTransactionMetadata, + TenureChangeTransactionMetadata, + TokenTransferTransactionMetadata, + Transaction, + TransactionFound, + TransactionMetadata, + TransactionNotFound, + TransactionSearchResponse, +} from '../schemas/entities/transactions'; +import { + AbstractMempoolTransaction, + MempoolTransaction, +} from '../schemas/entities/mempool-transactions'; +import { + FungibleTokenAssetTransactionEvent, + NonFungibleTokenAssetTransactionEvent, + SmartContractLogTransactionEvent, + StxAssetTransactionEvent, + StxLockTransactionEvent, + TransactionEvent, +} from '../schemas/entities/transaction-events'; + +export const TransactionTypes = [ + 'contract_call', + 'smart_contract', + 'token_transfer', + 'coinbase', + 'poison_microblock', + 'tenure_change', +] as const; +export type TransactionType = (typeof TransactionTypes)[number]; + +export const TransactionAnchorModeTypes = ['on_chain_only', 'off_chain_only', 'any'] as const; +export type TransactionAnchorModeType = (typeof TransactionAnchorModeTypes)[number]; + +export const TransactionStatuses = [ + 'success', + 'abort_by_response', + 'abort_by_post_condition', +] as const; +export type TransactionStatus = (typeof TransactionStatuses)[number]; + +export const MempoolTransactionStatuses = [ + 'pending', + 'dropped_replace_by_fee', + 'dropped_replace_across_fork', + 'dropped_too_expensive', + 'dropped_stale_garbage_collect', + 'dropped_problematic', +] as const; +export type MempoolTransactionStatus = (typeof MempoolTransactionStatuses)[number]; + export function parseTxTypeStrings(values: string[]): TransactionType[] { return values.map(v => { switch (v) { @@ -365,7 +398,7 @@ export function parseDbEvent(dbEvent: DbEvent): TransactionEvent { switch (dbEvent.event_type) { case DbEventTypeId.SmartContractLog: { const parsedClarityValue = decodeClarityValueToRepr(dbEvent.value); - const event: TransactionEventSmartContractLog = { + const event: SmartContractLogTransactionEvent = { event_index: dbEvent.event_index, event_type: 'smart_contract_log', tx_id: dbEvent.tx_id, @@ -381,7 +414,7 @@ export function parseDbEvent(dbEvent: DbEvent): TransactionEvent { return event; } case DbEventTypeId.StxLock: { - const event: TransactionEventStxLock = { + const event: StxLockTransactionEvent = { event_index: dbEvent.event_index, event_type: 'stx_lock', tx_id: dbEvent.tx_id, @@ -394,7 +427,7 @@ export function parseDbEvent(dbEvent: DbEvent): TransactionEvent { return event; } case DbEventTypeId.StxAsset: { - const event: TransactionEventStxAsset = { + const event: StxAssetTransactionEvent = { event_index: dbEvent.event_index, event_type: 'stx_asset', tx_id: dbEvent.tx_id, @@ -411,7 +444,7 @@ export function parseDbEvent(dbEvent: DbEvent): TransactionEvent { return event; } case DbEventTypeId.FungibleTokenAsset: { - const event: TransactionEventFungibleAsset = { + const event: FungibleTokenAssetTransactionEvent = { event_index: dbEvent.event_index, event_type: 'fungible_token_asset', tx_id: dbEvent.tx_id, @@ -427,7 +460,7 @@ export function parseDbEvent(dbEvent: DbEvent): TransactionEvent { } case DbEventTypeId.NonFungibleTokenAsset: { const parsedClarityValue = decodeClarityValueToRepr(dbEvent.value); - const event: TransactionEventNonFungibleAsset = { + const event: NonFungibleTokenAssetTransactionEvent = { event_index: dbEvent.event_index, event_type: 'non_fungible_token_asset', tx_id: dbEvent.tx_id, @@ -1249,7 +1282,7 @@ export async function getTxFromDataStore( export async function searchTxs( db: PgStore, args: GetTxsArgs | GetTxsWithEventsArgs -): Promise { +): Promise { return await db.sqlTransaction(async sql => { const minedTxs = await getTxsFromDataStore(db, args); @@ -1294,7 +1327,7 @@ export async function searchTxs( // generating response const resp = [...foundTransactions, ...notFoundTransactions].reduce( - (map: TransactionList, obj) => { + (map: TransactionSearchResponse, obj) => { if (obj.result) { map[obj.result.tx_id] = obj; } diff --git a/src/api/init.ts b/src/api/init.ts index 741c3916b..b51dbc9bf 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -4,7 +4,7 @@ import * as express from 'express'; import { v4 as uuid } from 'uuid'; import * as cors from 'cors'; -import { createTxRouter } from './routes/tx'; +import { TxRoutes } from './routes/tx'; import { createDebugRouter } from './routes/debug'; import { createInfoRouter } from './routes/info'; import { createContractRouter } from './routes/contract'; @@ -209,7 +209,6 @@ export async function startApiServer(opts: { '/v1', (() => { const v1 = express.Router(); - v1.use('/tx', createTxRouter(datastore)); v1.use('/block', createBlockRouter(datastore)); v1.use('/microblock', createMicroblockRouter(datastore)); v1.use('/burnchain', createBurnchainRouter(datastore)); @@ -420,6 +419,7 @@ export async function startApiServer(opts: { await reply.code(301).redirect('/extended'); }); await fastify.register(StatusRoutes); + await fastify.register(TxRoutes, { prefix: '/extended/v1/tx' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -431,6 +431,7 @@ export async function startApiServer(opts: { '^/$', '^/extended$', '^/extended/v1/status', + '^/extended/v1/tx', // '^/extended/v1/TODO', // '^/extended/v1/TODO', // '^/extended/v1/TODO', diff --git a/src/api/routes/address.ts b/src/api/routes/address.ts index a35fad8eb..c92659d94 100644 --- a/src/api/routes/address.ts +++ b/src/api/routes/address.ts @@ -230,7 +230,9 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout blockHeight, atSingleBlock, }); - const results = txResults.map(dbTx => parseDbTx(dbTx)); + const results = txResults.map(dbTx => + parseDbTx(dbTx) + ) as import('@stacks/stacks-blockchain-api-types').Transaction[]; const response: TransactionResults = { limit, offset, total, results }; return response; }); @@ -264,7 +266,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout throw new Error('unexpected tx not found -- fix tx enumeration query'); } const result: AddressTransactionWithTransfers = { - tx: txQuery.result, + tx: txQuery.result as import('@stacks/stacks-blockchain-api-types').Transaction, stx_sent: results.stx_sent.toString(), stx_received: results.stx_received.toString(), stx_transfers: results.stx_transfers.map(transfer => ({ @@ -333,7 +335,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout throw new Error('unexpected tx not found -- fix tx enumeration query'); } const result: AddressTransactionWithTransfers = { - tx: txQuery.result, + tx: txQuery.result as import('@stacks/stacks-blockchain-api-types').Transaction, stx_sent: entry.stx_sent.toString(), stx_received: entry.stx_received.toString(), stx_transfers: entry.stx_transfers.map(transfer => ({ @@ -495,7 +497,9 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout address, includeUnanchored, }); - const results = txResults.map(tx => parseDbMempoolTx(tx)); + const results = txResults.map(tx => + parseDbMempoolTx(tx) + ) as import('@stacks/stacks-blockchain-api-types').MempoolTransaction[]; const response: MempoolTransactionListResponse = { limit, offset, total, results }; if (!isProdEnv) { const schemaPath = diff --git a/src/api/routes/microblock.ts b/src/api/routes/microblock.ts index 4d5319697..6d2a5a4f6 100644 --- a/src/api/routes/microblock.ts +++ b/src/api/routes/microblock.ts @@ -65,7 +65,7 @@ export function createMicroblockRouter(db: PgStore): express.Router { const txs = await getUnanchoredTxsFromDataStore(db); const response: UnanchoredTransactionListResponse = { total: txs.length, - results: txs, + results: txs as import('@stacks/stacks-blockchain-api-types').Transaction[], }; res.json(response); }) diff --git a/src/api/routes/search.ts b/src/api/routes/search.ts index 2a29b38f5..e794f18da 100644 --- a/src/api/routes/search.ts +++ b/src/api/routes/search.ts @@ -116,7 +116,9 @@ export function createSearchRouter(db: PgStore): express.Router { }, }; if (includeMetadata) { - txResult.result.metadata = parseDbTx(txData); + txResult.result.metadata = parseDbTx( + txData + ) as import('@stacks/stacks-blockchain-api-types').Transaction; } return txResult; } else if (queryResult.result.entity_type === 'mempool_tx_id') { @@ -132,7 +134,9 @@ export function createSearchRouter(db: PgStore): express.Router { }, }; if (includeMetadata) { - txResult.result.metadata = parseDbMempoolTx(txData); + txResult.result.metadata = parseDbMempoolTx( + txData + ) as import('@stacks/stacks-blockchain-api-types').MempoolTransaction; } return txResult; } else { @@ -185,7 +189,9 @@ export function createSearchRouter(db: PgStore): express.Router { }, }; if (includeMetadata) { - contractResult.result.metadata = parseDbTx(txData); + contractResult.result.metadata = parseDbTx( + txData + ) as import('@stacks/stacks-blockchain-api-types').Transaction; } return contractResult; } else { @@ -203,7 +209,9 @@ export function createSearchRouter(db: PgStore): express.Router { }, }; if (includeMetadata) { - contractResult.result.metadata = parseDbMempoolTx(txData); + contractResult.result.metadata = parseDbMempoolTx( + txData + ) as import('@stacks/stacks-blockchain-api-types').MempoolTransaction; } return contractResult; } diff --git a/src/api/routes/tokens.ts b/src/api/routes/tokens.ts index a76489cbd..b89d9b5a7 100644 --- a/src/api/routes/tokens.ts +++ b/src/api/routes/tokens.ts @@ -78,7 +78,10 @@ export function createTokenRouter(db: PgStore): express.Router { block_height: result.nft_holding_info.block_height, }; if (includeTxMetadata && result.tx) { - return { ...parsedNftData, tx: parseDbTx(result.tx) }; + return { + ...parsedNftData, + tx: parseDbTx(result.tx) as import('@stacks/stacks-blockchain-api-types').Transaction, + }; } return { ...parsedNftData, tx_id: result.nft_holding_info.tx_id }; }); @@ -143,7 +146,12 @@ export function createTokenRouter(db: PgStore): express.Router { asset_event_type: getAssetEventTypeString(result.nft_event.asset_event_type_id), }; if (includeTxMetadata && result.tx) { - return { ...parsedNftData, tx: parseDbTx(result.tx) }; + return { + ...parsedNftData, + tx: parseDbTx( + result.tx + ) as import('@stacks/stacks-blockchain-api-types').Transaction, + }; } return { ...parsedNftData, tx_id: result.nft_event.tx_id }; }); @@ -207,7 +215,12 @@ export function createTokenRouter(db: PgStore): express.Router { }, }; if (includeTxMetadata && result.tx) { - return { ...parsedNftData, tx: parseDbTx(result.tx) }; + return { + ...parsedNftData, + tx: parseDbTx( + result.tx + ) as import('@stacks/stacks-blockchain-api-types').Transaction, + }; } return { ...parsedNftData, tx_id: result.nft_event.tx_id }; }); diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index 811a5ba96..c116d4488 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -1,5 +1,3 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; import { parseTxTypeStrings, parseDbMempoolTx, @@ -8,77 +6,152 @@ import { parseDbTx, parseDbEvent, } from '../controllers/db-controller'; -import { isValidC32Address, isValidPrincipal } from '../../helpers'; +import { isValidC32Address, isValidPrincipal, parseEventTypeStrings } from '../../helpers'; import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; -import { - isUnanchoredRequest, - getBlockHeightPathParam, - validateRequestHexInput, - parseAddressOrTxId, - parseEventTypeFilter, - MempoolOrderByParam, - OrderParam, -} from '../query-helpers'; +import { validateRequestHexInput, validatePrincipal } from '../query-helpers'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; -import { validate } from '../validate'; -import { - TransactionType, - TransactionResults, - MempoolTransactionListResponse, - GetRawTransactionResult, -} from '@stacks/stacks-blockchain-api-types'; +import { GetRawTransactionResult } from '@stacks/stacks-blockchain-api-types'; import { - ETagType, - getETagCacheHandler, - setETagCacheHeaders, + handleChainTipCache, + handleMempoolCache, + handleTransactionCache, } from '../controllers/cache-controller'; -import { PgStore } from '../../datastore/pg-store'; -import { has0xPrefix, isProdEnv } from '@hirosystems/api-toolkit'; - -export function createTxRouter(db: PgStore): express.Router { - const router = express.Router(); +import { DbEventTypeId } from '../../datastore/common'; +import { has0xPrefix } from '@hirosystems/api-toolkit'; - const cacheHandler = getETagCacheHandler(db); - const mempoolCacheHandler = getETagCacheHandler(db, ETagType.mempool); - const txCacheHandler = getETagCacheHandler(db, ETagType.transaction); - - router.get( +import { FastifyPluginAsync } from 'fastify'; +import { Server } from 'node:http'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { + AddressParamSchema, + BlockHeightSchema, + LimitParam, + MempoolOrderByParamSchema, + OffsetParam, + OrderParamSchema, + PrincipalSchema, + TransactionIdCommaListParamSchema, + TransactionIdParamSchema, + UnanchoredParamSchema, +} from '../schemas/params'; +import { + TransactionSchema, + TransactionSearchResponseSchema, + TransactionTypeSchema, + TransactionTypeStringSchema, +} from '../schemas/entities/transactions'; +import { PaginatedResponse } from '../schemas/util'; +import { MempoolTransactionSchema } from '../schemas/entities/mempool-transactions'; +import { + ErrorResponseSchema, + MempoolStatsResponseSchema, + RawTransactionResponseSchema, +} from '../schemas/responses/responses'; +import { + TransactionEventSchema, + TransactionEventTypeCommaListSchema, + TransactionEventTypeSchema, +} from '../schemas/entities/transaction-events'; + +export const TxRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_transaction_list', + summary: 'Get recent transactions', + description: `Retrieves all recently mined transactions + + If using TypeScript, import typings for this response from our types package: + + \`import type { TransactionResults } from '@stacks/stacks-blockchain-api-types';\``, + tags: ['Transactions'], + querystring: Type.Object({ + offset: OffsetParam(), + limit: LimitParam(ResourceType.Tx), + type: Type.Optional( + Type.Union([Type.Array(TransactionTypeSchema), TransactionTypeStringSchema]) + ), + unanchored: Type.Optional(UnanchoredParamSchema), + order: Type.Optional(Type.Enum({ asc: 'asc', desc: 'desc' })), + sort_by: Type.Optional( + Type.Enum( + { + block_height: 'block_height', + burn_block_time: 'burn_block_time', + fee: 'fee', + }, + { + default: 'block_height', + description: 'Option to sort results by block height, timestamp, or fee', + } + ) + ), + from_address: Type.Optional( + Type.String({ description: 'Option to filter results by sender address' }) + ), + to_address: Type.Optional( + Type.String({ description: 'Option to filter results by recipient address' }) + ), + start_time: Type.Optional( + Type.Integer({ + description: + 'Filter by transactions after this timestamp (unix timestamp in seconds)', + examples: [1704067200], + }) + ), + end_time: Type.Optional( + Type.Integer({ + description: + 'Filter by transactions before this timestamp (unix timestamp in seconds)', + examples: [1706745599], + }) + ), + contract_id: Type.Optional( + Type.String({ + description: 'Option to filter results by contract ID', + examples: ['SP000000000000000000002Q6VF78.pox-4'], + }) + ), + function_name: Type.Optional( + Type.String({ + description: 'Filter by contract call transactions involving this function name', + examples: ['delegate-stx'], + }) + ), + nonce: Type.Optional( + Type.Integer({ + description: 'Filter by transactions with this nonce', + minimum: 0, + maximum: Number.MAX_SAFE_INTEGER, + examples: [123], + }) + ), + }), + response: { + 200: PaginatedResponse(TransactionSchema, 'List of transactions'), + }, + }, + }, + async (req, reply) => { const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); const typeQuery = req.query.type; - let txTypeFilter: TransactionType[]; - if (Array.isArray(typeQuery)) { - txTypeFilter = parseTxTypeStrings(typeQuery as string[]); - } else if (typeof typeQuery === 'string') { - if (typeQuery.includes(',')) { - txTypeFilter = parseTxTypeStrings(typeQuery.split(',')); - } else { - txTypeFilter = parseTxTypeStrings([typeQuery]); - } - } else if (typeQuery) { - throw new Error(`Unexpected tx type query value: ${JSON.stringify(typeQuery)}`); - } else { - txTypeFilter = []; - } - - let order: 'asc' | 'desc' | undefined; - if (req.query.order) { - if ( - typeof req.query.order === 'string' && - (req.query.order === 'asc' || req.query.order === 'desc') - ) { - order = req.query.order; - } else { - throw new InvalidRequestError( - `The "order" query parameter must be a 'desc' or 'asc'`, - InvalidRequestErrorType.invalid_param - ); - } - } + const txTypeFilter = parseTxTypeStrings( + typeQuery === undefined + ? [] + : Array.isArray(typeQuery) + ? typeQuery + : typeQuery.includes(',') + ? typeQuery.split(',') + : [typeQuery] + ); let fromAddress: string | undefined; if (typeof req.query.from_address === 'string') { @@ -102,28 +175,6 @@ export function createTxRouter(db: PgStore): express.Router { toAddress = req.query.to_address; } - let startTime: number | undefined; - if (typeof req.query.start_time === 'string') { - if (!/^\d{10}$/.test(req.query.start_time)) { - throw new InvalidRequestError( - `Invalid query parameter for "start_time": "${req.query.start_time}" is not a valid timestamp`, - InvalidRequestErrorType.invalid_param - ); - } - startTime = parseInt(req.query.start_time); - } - - let endTime: number | undefined; - if (typeof req.query.end_time === 'string') { - if (!/^\d{10}$/.test(req.query.end_time)) { - throw new InvalidRequestError( - `Invalid query parameter for "end_time": "${req.query.end_time}" is not a valid timestamp`, - InvalidRequestErrorType.invalid_param - ); - } - endTime = parseInt(req.query.end_time); - } - let contractId: string | undefined; if (typeof req.query.contract_id === 'string') { if (!isValidPrincipal(req.query.contract_id)) { @@ -135,67 +186,54 @@ export function createTxRouter(db: PgStore): express.Router { contractId = req.query.contract_id; } - let functionName: string | undefined; - if (typeof req.query.function_name === 'string') { - functionName = req.query.function_name; - } - - let nonce: number | undefined; - if (typeof req.query.nonce === 'string') { - if (!/^\d{1,10}$/.test(req.query.nonce)) { - throw new InvalidRequestError( - `Invalid query parameter for "nonce": "${req.query.nonce}" is not a valid nonce`, - InvalidRequestErrorType.invalid_param - ); - } - nonce = parseInt(req.query.nonce); - } - - let sortBy: 'block_height' | 'burn_block_time' | 'fee' | undefined; - if (req.query.sort_by) { - if ( - typeof req.query.sort_by === 'string' && - ['block_height', 'burn_block_time', 'fee'].includes(req.query.sort_by) - ) { - sortBy = req.query.sort_by as typeof sortBy; - } else { - throw new InvalidRequestError( - `The "sort_by" query parameter must be 'block_height', 'burn_block_time', or 'fee'`, - InvalidRequestErrorType.invalid_param - ); - } - } - const includeUnanchored = isUnanchoredRequest(req, res, next); - const { results: txResults, total } = await db.getTxList({ + const { results: txResults, total } = await fastify.db.getTxList({ offset, limit, txTypeFilter, - includeUnanchored, + includeUnanchored: req.query.unanchored ?? false, fromAddress, toAddress, - startTime, - endTime, + startTime: req.query.start_time, + endTime: req.query.end_time, contractId, - functionName, - nonce, - order, - sortBy, + functionName: req.query.function_name, + nonce: req.query.nonce, + order: req.query.order, + sortBy: req.query.sort_by, }); const results = txResults.map(tx => parseDbTx(tx)); - const response: TransactionResults = { limit, offset, total, results }; - if (!isProdEnv) { - const schemaPath = - '@stacks/stacks-blockchain-api-types/api/transaction/get-transactions.schema.json'; - await validate(schemaPath, response); - } - setETagCacheHeaders(res); - res.json(response); - }) + await reply.send({ limit, offset, total, results }); + } ); - router.get( + fastify.get( '/multiple', - asyncHandler(async (req, res, next) => { + { + preHandler: handleMempoolCache, + schema: { + operationId: 'get_tx_list_details', + summary: 'Get list of details for transactions', + description: `Retrieves a list of transactions for a given list of transaction IDs + + If using TypeScript, import typings for this response from our types package: + + \`import type { Transaction } from '@stacks/stacks-blockchain-api-types';\``, + tags: ['Transactions'], + querystring: Type.Object({ + tx_id: Type.Union([ + Type.Array(TransactionIdParamSchema), + TransactionIdCommaListParamSchema, + ]), + event_limit: LimitParam(ResourceType.Tx), + event_offset: OffsetParam(), + unanchored: Type.Optional(UnanchoredParamSchema), + }), + response: { + 200: TransactionSearchResponseSchema, + }, + }, + }, + async (req, reply) => { if (typeof req.query.tx_id === 'string') { // check if tx_id is a comma-seperated list of tx_ids if (req.query.tx_id.includes(',')) { @@ -205,67 +243,73 @@ export function createTxRouter(db: PgStore): express.Router { req.query.tx_id = [req.query.tx_id]; } } - const txList: string[] = req.query.tx_id as string[]; + const txList: string[] = req.query.tx_id; - const eventLimit = getPagingQueryLimit(ResourceType.Tx, req.query['event_limit']); - const eventOffset = parsePagingQueryInput(req.query['event_offset'] ?? 0); - const includeUnanchored = isUnanchoredRequest(req, res, next); + const eventLimit = getPagingQueryLimit(ResourceType.Tx, req.query.event_limit); + const eventOffset = parsePagingQueryInput(req.query.event_offset ?? 0); + const includeUnanchored = req.query.unanchored ?? false; txList.forEach(tx => validateRequestHexInput(tx)); - const txQuery = await searchTxs(db, { + const txQuery = await searchTxs(fastify.db, { txIds: txList, eventLimit, eventOffset, includeUnanchored, }); - // TODO: this validation needs fixed now that the mempool-tx and mined-tx types no longer overlap - /* - const schemaPath = require.resolve( - '@stacks/stacks-blockchain-api-types/entities/transactions/transaction.schema.json' - ); - await validate(schemaPath, txQuery.result); - */ - res.json(txQuery); - }) + await reply.send(txQuery); + } ); - router.get( + fastify.get( '/mempool', - mempoolCacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleMempoolCache, + schema: { + operationId: 'get_mempool_transaction_list', + summary: 'Get mempool transactions', + description: `Retrieves all transactions that have been recently broadcast to the mempool. These are pending transactions awaiting confirmation. + + If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates.`, + tags: ['Transactions'], + querystring: Type.Object({ + sender_address: Type.Optional(AddressParamSchema), + recipient_address: Type.Optional(AddressParamSchema), + address: Type.Optional(AddressParamSchema), + order_by: Type.Optional(MempoolOrderByParamSchema), + order: Type.Optional(OrderParamSchema), + unanchored: Type.Optional(UnanchoredParamSchema), + offset: OffsetParam(), + limit: LimitParam(ResourceType.Tx), + }), + response: { + 200: PaginatedResponse(MempoolTransactionSchema, 'List of mempool transactions'), + }, + }, + }, + async (req, reply) => { const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - let addrParams: (string | undefined)[]; + const addrParams: (string | undefined)[] = [ + req.query.sender_address, + req.query.recipient_address, + req.query.address, + ]; try { - addrParams = ['sender_address', 'recipient_address', 'address'].map(p => { - const addr: string | undefined = req.query[p] as string; + addrParams.forEach(addr => { if (!addr) { return undefined; } - switch (p) { - case 'sender_address': - if (!isValidC32Address(addr)) { - throw new Error( - `Invalid query parameter for "${p}": "${addr}" is not a valid STX address` - ); - } - break; - case 'recipient_address': - case 'address': - if (!(isValidC32Address(addr) || isValidPrincipal(addr))) { - throw new Error( - `Invalid query parameter for "${p}": "${addr}" is not a valid STX address or principal` - ); - } - break; + if (!isValidPrincipal(addr)) { + throw new Error( + `Invalid query parameter: "${addr}" is not a valid STX address or principal` + ); } - return addr; }); } catch (error) { throw new InvalidRequestError(`${error}`, InvalidRequestErrorType.invalid_param); } - const includeUnanchored = isUnanchoredRequest(req, res, next); + const includeUnanchored = req.query.unanchored ?? false; const [senderAddress, recipientAddress, address] = addrParams; if (address && (recipientAddress || senderAddress)) { throw new InvalidRequestError( @@ -275,26 +319,9 @@ export function createTxRouter(db: PgStore): express.Router { } const orderBy = req.query.order_by; - if ( - orderBy !== undefined && - orderBy != MempoolOrderByParam.fee && - orderBy != MempoolOrderByParam.age && - orderBy != MempoolOrderByParam.size - ) { - throw new InvalidRequestError( - `The "order_by" param can only be 'fee', 'age', or 'size'`, - InvalidRequestErrorType.invalid_param - ); - } const order = req.query.order; - if (order !== undefined && order != OrderParam.asc && order != OrderParam.desc) { - throw new InvalidRequestError( - `The "order" param can only be 'asc' or 'desc'`, - InvalidRequestErrorType.invalid_param - ); - } - const { results: txResults, total } = await db.getMempoolTxList({ + const { results: txResults, total } = await fastify.db.getMempoolTxList({ offset, limit, includeUnanchored, @@ -306,180 +333,357 @@ export function createTxRouter(db: PgStore): express.Router { }); const results = txResults.map(tx => parseDbMempoolTx(tx)); - const response: MempoolTransactionListResponse = { limit, offset, total, results }; - setETagCacheHeaders(res, ETagType.mempool); - res.json(response); - }) + const response = { limit, offset, total, results }; + await reply.send(response); + } ); - router.get( + fastify.get( '/mempool/dropped', - mempoolCacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleMempoolCache, + schema: { + operationId: 'get_dropped_mempool_transaction_list', + summary: 'Get dropped mempool transactions', + description: `Retrieves all recently-broadcast transactions that have been dropped from the mempool. + + Transactions are dropped from the mempool if: + * they were stale and awaiting garbage collection or, + * were expensive, or + * were replaced with a new fee`, + tags: ['Transactions'], + querystring: Type.Object({ + offset: OffsetParam(), + limit: LimitParam(ResourceType.Tx), + }), + response: { + 200: PaginatedResponse(MempoolTransactionSchema, 'List of mempool transactions'), + }, + }, + }, + async (req, reply) => { const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const { results: txResults, total } = await db.getDroppedTxs({ + const { results: txResults, total } = await fastify.db.getDroppedTxs({ offset, limit, }); const results = txResults.map(tx => parseDbMempoolTx(tx)); - const response: MempoolTransactionListResponse = { limit, offset, total, results }; - setETagCacheHeaders(res, ETagType.mempool); - res.json(response); - }) + const response = { limit, offset, total, results }; + await reply.send(response); + } ); - router.get( + fastify.get( '/mempool/stats', - mempoolCacheHandler, - asyncHandler(async (req, res) => { - const queryResult = await db.getMempoolStats({ lastBlockCount: undefined }); - setETagCacheHeaders(res, ETagType.mempool); - res.json(queryResult); - }) + { + preHandler: handleMempoolCache, + schema: { + operationId: 'get_mempool_transaction_stats', + summary: 'Get statistics for mempool transactions', + description: `Queries for transactions counts, age (by block height), fees (simple average), and size. + All results broken down by transaction type and percentiles (p25, p50, p75, p95).`, + tags: ['Transactions'], + response: { + 200: MempoolStatsResponseSchema, + }, + }, + }, + async (_req, reply) => { + const queryResult = await fastify.db.getMempoolStats({ lastBlockCount: undefined }); + await reply.send(queryResult); + } ); - router.get( + fastify.get( '/events', - cacheHandler, - asyncHandler(async (req, res, next) => { - const limit = getPagingQueryLimit(ResourceType.Tx, req.query['limit'], 100); - const offset = parsePagingQueryInput(req.query['offset'] ?? 0); + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_filtered_events', + summary: 'Transaction Events', + description: `Retrieves the list of events filtered by principal (STX address or Smart Contract ID), transaction id or event types. + The list of event types is ('smart_contract_log', 'stx_lock', 'stx_asset', 'fungible_token_asset', 'non_fungible_token_asset').`, + tags: ['Transactions'], + querystring: Type.Object({ + tx_id: Type.Optional(TransactionIdParamSchema), + address: Type.Optional(PrincipalSchema), + type: Type.Optional( + Type.Union([ + Type.Array(TransactionEventTypeSchema), + TransactionEventTypeCommaListSchema, + ]) + ), + offset: OffsetParam(), + limit: LimitParam(ResourceType.Event), + }), + response: { + 200: Type.Object( + { + limit: Type.Integer({ examples: [20] }), + offset: Type.Integer({ examples: [0] }), + events: Type.Array(TransactionEventSchema), + }, + { title: 'List of events' } + ), + }, + }, + }, + async (req, reply) => { + const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit, 100); + const offset = parsePagingQueryInput(req.query.offset ?? 0); - const principalOrTxId = parseAddressOrTxId(req, res, next); - const eventTypeFilter = parseEventTypeFilter(req, res, next); + const addrOrTx = { + address: req.query.address, + txId: req.query.tx_id, + } as { address: string; txId: undefined } | { address: undefined; txId: string }; + if (!addrOrTx.address && !addrOrTx.txId) { + throw new InvalidRequestError( + `can not find 'address' or 'tx_id' in the request`, + InvalidRequestErrorType.bad_request + ); + } + if (addrOrTx.address && addrOrTx.txId) { + // if mutually exclusive address and txId specified throw + throw new InvalidRequestError( + `can't handle both 'address' and 'tx_id' in the same request`, + InvalidRequestErrorType.bad_request + ); + } + if (addrOrTx.address) { + validatePrincipal(addrOrTx.address); + } + if (addrOrTx.txId) { + addrOrTx.txId = has0xPrefix(addrOrTx.txId) ? addrOrTx.txId : '0x' + addrOrTx.txId; + validateRequestHexInput(addrOrTx.txId); + } + + const typeQuery = req.query.type; + let eventTypeFilter: DbEventTypeId[]; + if (typeQuery) { + try { + eventTypeFilter = parseEventTypeStrings( + Array.isArray(typeQuery) + ? typeQuery + : typeQuery.includes(',') + ? typeQuery.split(',') + : [typeQuery] + ); + } catch (error) { + throw new InvalidRequestError( + `invalid 'event type'`, + InvalidRequestErrorType.bad_request + ); + } + } else { + eventTypeFilter = [ + DbEventTypeId.SmartContractLog, + DbEventTypeId.StxAsset, + DbEventTypeId.FungibleTokenAsset, + DbEventTypeId.NonFungibleTokenAsset, + DbEventTypeId.StxLock, + ]; //no filter provided , return all types of events + } - const { results } = await db.getTransactionEvents({ - addressOrTxId: principalOrTxId, + const { results } = await fastify.db.getTransactionEvents({ + addressOrTxId: addrOrTx, eventTypeFilter, offset, limit, }); - const response = { limit, offset, events: results.map(e => parseDbEvent(e)) }; - setETagCacheHeaders(res); - res.status(200).json(response); - }) + await reply.send({ limit, offset, events: results.map(e => parseDbEvent(e)) }); + } ); - router.get( + fastify.get( '/:tx_id', - txCacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleTransactionCache, + schema: { + operationId: 'get_transaction_by_id', + summary: 'Get transaction', + description: `Retrieves transaction details for a given transaction ID + + \`import type { Transaction } from '@stacks/stacks-blockchain-api-types';\``, + tags: ['Transactions'], + params: Type.Object({ + tx_id: TransactionIdParamSchema, + }), + querystring: Type.Object({ + event_limit: LimitParam(ResourceType.Tx), + event_offset: OffsetParam(), + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Union([TransactionSchema, MempoolTransactionSchema]), + 404: ErrorResponseSchema, + }, + }, + }, + async (req, reply) => { const { tx_id } = req.params; if (!has0xPrefix(tx_id)) { const baseURL = req.protocol + '://' + req.headers.host + '/'; const url = new URL(req.url, baseURL); - return res.redirect('/extended/v1/tx/0x' + tx_id + url.search); + return reply.redirect('/extended/v1/tx/0x' + req.params.tx_id + url.search); } const eventLimit = getPagingQueryLimit(ResourceType.Tx, req.query['event_limit'], 100); const eventOffset = parsePagingQueryInput(req.query['event_offset'] ?? 0); - const includeUnanchored = isUnanchoredRequest(req, res, next); + const includeUnanchored = req.query.unanchored ?? false; validateRequestHexInput(tx_id); - const txQuery = await searchTx(db, { + const txQuery = await searchTx(fastify.db, { txId: tx_id, eventLimit, eventOffset, includeUnanchored, }); if (!txQuery.found) { - res.status(404).json({ error: `could not find transaction by ID ${tx_id}` }); + await reply.status(404).send({ error: `could not find transaction by ID ${tx_id}` }); return; } - setETagCacheHeaders(res, ETagType.transaction); - res.json(txQuery.result); - }) + await reply.send(txQuery.result); + } ); - router.get( + fastify.get( '/:tx_id/raw', - txCacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleTransactionCache, + schema: { + operationId: 'get_raw_transaction_by_id', + summary: 'Get raw transaction', + description: `Retrieves a hex encoded serialized transaction for a given ID`, + tags: ['Transactions'], + params: Type.Object({ + tx_id: TransactionIdParamSchema, + }), + querystring: Type.Object({ + event_limit: LimitParam(ResourceType.Tx), + event_offset: OffsetParam(), + unanchored: UnanchoredParamSchema, + }), + response: { + 200: RawTransactionResponseSchema, + 404: ErrorResponseSchema, + }, + }, + }, + async (req, reply) => { const { tx_id } = req.params; if (!has0xPrefix(tx_id)) { - return res.redirect('/extended/v1/tx/0x' + tx_id + '/raw'); + return reply.redirect('/extended/v1/tx/0x' + tx_id + '/raw'); } validateRequestHexInput(tx_id); - const rawTxQuery = await db.getRawTx(tx_id); + const rawTxQuery = await fastify.db.getRawTx(tx_id); if (rawTxQuery.found) { const response: GetRawTransactionResult = { raw_tx: rawTxQuery.result.raw_tx, }; - setETagCacheHeaders(res, ETagType.transaction); - res.json(response); + await reply.send(response); } else { - res.status(404).json({ error: `could not find transaction by ID ${tx_id}` }); + await reply.status(404).send({ error: `could not find transaction by ID ${tx_id}` }); } - }) + } ); - router.get( + fastify.get( '/block/:block_hash', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_transactions_by_block_hash', + summary: 'Transactions by block hash', + description: `**NOTE:** This endpoint is deprecated in favor of [Get transactions by block](/api/get-transactions-by-block). + + Retrieves a list of all transactions within a block for a given block hash.`, + tags: ['Transactions'], + params: Type.Object({ + block_hash: Type.String(), + }), + querystring: Type.Object({ + offset: OffsetParam(), + limit: LimitParam(ResourceType.Tx), + }), + response: { + 200: PaginatedResponse(TransactionSchema, 'List of transactions'), + 404: ErrorResponseSchema, + }, + }, + }, + async (req, reply) => { const { block_hash } = req.params; const limit = getPagingQueryLimit(ResourceType.Tx, req.query['limit'], 200); const offset = parsePagingQueryInput(req.query['offset'] ?? 0); validateRequestHexInput(block_hash); - const result = await db.getTxsFromBlock({ hash: block_hash }, limit, offset); + const result = await fastify.db.getTxsFromBlock({ hash: block_hash }, limit, offset); if (!result.found) { - res.status(404).json({ error: `no block found by hash ${block_hash}` }); + await reply.status(404).send({ error: `no block found by hash ${block_hash}` }); return; } const dbTxs = result.result; const results = dbTxs.results.map(dbTx => parseDbTx(dbTx)); - const response: TransactionResults = { + await reply.send({ limit: limit, offset: offset, total: dbTxs.total, results: results, - }; - if (!isProdEnv) { - const schemaPath = - '@stacks/stacks-blockchain-api-types/api/transaction/get-transactions.schema.json'; - await validate(schemaPath, response); - } - setETagCacheHeaders(res); - res.json(response); - }) + }); + } ); - router.get( + fastify.get( '/block_height/:height', - cacheHandler, - asyncHandler(async (req, res, next) => { - const height = getBlockHeightPathParam(req, res, next); + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_transactions_by_block_height', + summary: 'Transactions by block height', + description: `**NOTE:** This endpoint is deprecated in favor of [Get transactions by block](/api/get-transactions-by-block). + + Retrieves all transactions within a block at a given height`, + tags: ['Transactions'], + params: Type.Object({ + height: BlockHeightSchema, + }), + querystring: Type.Object({ + offset: OffsetParam(), + limit: LimitParam(ResourceType.Tx), + }), + response: { + 200: PaginatedResponse(TransactionSchema, 'List of transactions'), + 404: ErrorResponseSchema, + }, + }, + }, + async (req, reply) => { + const height = req.params.height; const limit = getPagingQueryLimit(ResourceType.Tx, req.query['limit']); const offset = parsePagingQueryInput(req.query['offset'] ?? 0); - const result = await db.getTxsFromBlock({ height: height }, limit, offset); + const result = await fastify.db.getTxsFromBlock({ height: height }, limit, offset); if (!result.found) { - res.status(404).json({ error: `no block found at height ${height}` }); + await reply.status(404).send({ error: `no block found at height ${height}` }); return; } const dbTxs = result.result; const results = dbTxs.results.map(dbTx => parseDbTx(dbTx)); - const response: TransactionResults = { + await reply.send({ limit: limit, offset: offset, total: dbTxs.total, results: results, - }; - if (!isProdEnv) { - const schemaPath = - '@stacks/stacks-blockchain-api-types/api/transaction/get-transactions.schema.json'; - await validate(schemaPath, response); - } - setETagCacheHeaders(res); - res.json(response); - }) + }); + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/v2/blocks.ts b/src/api/routes/v2/blocks.ts index b29f87e35..59a0cc312 100644 --- a/src/api/routes/v2/blocks.ts +++ b/src/api/routes/v2/blocks.ts @@ -98,7 +98,9 @@ export function createV2BlocksRouter(db: PgStore): express.Router { limit, offset, total, - results: results.map(r => parseDbTx(r)), + results: results.map( + r => parseDbTx(r) as import('@stacks/stacks-blockchain-api-types').Transaction + ), }; setETagCacheHeaders(res); res.json(response); diff --git a/src/api/routes/v2/helpers.ts b/src/api/routes/v2/helpers.ts index 97b1aa603..e44602a69 100644 --- a/src/api/routes/v2/helpers.ts +++ b/src/api/routes/v2/helpers.ts @@ -95,7 +95,7 @@ export function parseDbTxWithAccountTransferSummary( tx: DbTxWithAddressTransfers ): AddressTransaction { return { - tx: parseDbTx(tx), + tx: parseDbTx(tx) as import('@stacks/stacks-blockchain-api-types').Transaction, stx_sent: tx.stx_sent.toString(), stx_received: tx.stx_received.toString(), events: { diff --git a/src/api/routes/ws/web-socket-transmitter.ts b/src/api/routes/ws/web-socket-transmitter.ts index 4e9dee455..e2d1df4fa 100644 --- a/src/api/routes/ws/web-socket-transmitter.ts +++ b/src/api/routes/ws/web-socket-transmitter.ts @@ -154,7 +154,10 @@ export class WebSocketTransmitter { includeUnanchored: true, }); if (mempoolTxs.length > 0) { - await this.send('mempoolTransaction', mempoolTxs[0]); + await this.send( + 'mempoolTransaction', + mempoolTxs[0] as import('@stacks/stacks-blockchain-api-types').MempoolTransaction + ); } } catch (error) { logger.error(error); @@ -183,7 +186,10 @@ export class WebSocketTransmitter { } }); if (result) { - await this.send('transaction', result); + await this.send( + 'transaction', + result as import('@stacks/stacks-blockchain-api-types').Transaction + ); } } catch (error) { logger.error(error); @@ -230,7 +236,7 @@ export class WebSocketTransmitter { for (const addressTx of addressTxs) { const parsedTx = parseDbTx(addressTx.tx); const result: AddressTransactionWithTransfers = { - tx: parsedTx, + tx: parsedTx as import('@stacks/stacks-blockchain-api-types').Transaction, stx_sent: addressTx.stx_sent.toString(), stx_received: addressTx.stx_received.toString(), stx_transfers: addressTx.stx_transfers.map(value => { diff --git a/src/api/schemas/entities/mempool-transactions.ts b/src/api/schemas/entities/mempool-transactions.ts new file mode 100644 index 000000000..1da006b46 --- /dev/null +++ b/src/api/schemas/entities/mempool-transactions.ts @@ -0,0 +1,104 @@ +import { Static, Type } from '@sinclair/typebox'; +import { + BaseTransactionSchema, + CoinbaseTransactionMetadataSchema, + ContractCallTransactionMetadataSchema, + PoisonMicroblockTransactionMetadataSchema, + SmartContractTransactionMetadataSchema, + TenureChangeTransactionMetadataSchema, + TokenTransferTransactionMetadataSchema, +} from './transactions'; +import { Nullable } from '../util'; + +const AbstractMempoolTransactionSchema = Type.Intersect([ + BaseTransactionSchema, + Type.Object( + { + tx_status: Type.Union( + [ + Type.Literal('pending'), + Type.Literal('dropped_replace_by_fee'), + Type.Literal('dropped_replace_across_fork'), + Type.Literal('dropped_too_expensive'), + Type.Literal('dropped_stale_garbage_collect'), + Type.Literal('dropped_problematic'), + ], + { + description: 'Status of the transaction', + } + ), + receipt_time: Type.Number({ + description: + 'A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.', + }), + receipt_time_iso: Type.String({ + description: + 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.', + }), + }, + { + title: 'AbstractMempoolTransaction', + description: + 'Abstract transaction. This schema makes up all properties common between all Stacks 2.0 transaction types', + } + ), +]); +export type AbstractMempoolTransaction = Static; + +export const TokenTransferMempoolTransactionSchema = Type.Intersect([ + AbstractMempoolTransactionSchema, + TokenTransferTransactionMetadataSchema, +]); +export type TokenTransferMempoolTransaction = Static; + +export const SmartContractMempoolTransactionSchema = Type.Intersect([ + AbstractMempoolTransactionSchema, + SmartContractTransactionMetadataSchema, +]); +export type SmartContractMempoolTransaction = Static; + +export const ContractCallMempoolTransactionSchema = Type.Intersect([ + AbstractMempoolTransactionSchema, + ContractCallTransactionMetadataSchema, +]); +export type ContractCallMempoolTransaction = Static; + +export const PoisonMicroblockMempoolTransactionSchema = Type.Intersect([ + AbstractMempoolTransactionSchema, + PoisonMicroblockTransactionMetadataSchema, +]); +export type PoisonMicroblockMempoolTransaction = Static< + typeof PoisonMicroblockMempoolTransactionSchema +>; + +export const CoinbaseMempoolTransactionSchema = Type.Intersect([ + AbstractMempoolTransactionSchema, + CoinbaseTransactionMetadataSchema, +]); +export type CoinbaseMempoolTransaction = Static; + +export const TenureChangeMempoolTransactionSchema = Type.Intersect([ + AbstractMempoolTransactionSchema, + TenureChangeTransactionMetadataSchema, +]); +export type TenureChangeMempoolTransaction = Static; + +export const MempoolTransactionSchema = Type.Union([ + TokenTransferMempoolTransactionSchema, + SmartContractMempoolTransactionSchema, + ContractCallMempoolTransactionSchema, + PoisonMicroblockMempoolTransactionSchema, + CoinbaseMempoolTransactionSchema, + TenureChangeMempoolTransactionSchema, +]); +export type MempoolTransaction = Static; + +export const MempoolStatsSchema = Type.Object( + { + p25: Nullable(Type.Number()), + p50: Nullable(Type.Number()), + p75: Nullable(Type.Number()), + p95: Nullable(Type.Number()), + }, + { additionalProperties: true } +); diff --git a/src/api/schemas/entities/post-conditions.ts b/src/api/schemas/entities/post-conditions.ts new file mode 100644 index 000000000..6d7cdcb9b --- /dev/null +++ b/src/api/schemas/entities/post-conditions.ts @@ -0,0 +1,69 @@ +import { Static, Type } from '@sinclair/typebox'; + +export const PostConditionModeSchema = Type.Union([Type.Literal('allow'), Type.Literal('deny')]); +export type PostConditionMode = Static; + +const PostConditionPrincipalSchema = Type.Union([ + Type.Object({ + type_id: Type.Literal('principal_origin'), + }), + Type.Object({ + type_id: Type.Literal('principal_standard'), + address: Type.String(), + }), + Type.Object({ + type_id: Type.Literal('principal_contract'), + address: Type.String(), + contract_name: Type.String(), + }), +]); +export type PostConditionPrincipal = Static; + +const PostConditionFungibleConditionCodeSchema = Type.Union([ + Type.Literal('sent_equal_to'), + Type.Literal('sent_greater_than'), + Type.Literal('sent_greater_than_or_equal_to'), + Type.Literal('sent_less_than'), + Type.Literal('sent_less_than_or_equal_to'), +]); + +const PostConditionStxSchema = Type.Object({ + principal: PostConditionPrincipalSchema, + condition_code: PostConditionFungibleConditionCodeSchema, + amount: Type.String(), + type: Type.Literal('stx'), +}); + +const PostConditionFungibleAssetSchema = Type.Object({ + principal: PostConditionPrincipalSchema, + condition_code: PostConditionFungibleConditionCodeSchema, + amount: Type.String(), + type: Type.Literal('fungible'), + asset: Type.Object({ + asset_name: Type.String(), + contract_address: Type.String(), + contract_name: Type.String(), + }), +}); + +const PostConditionNonFungibleAssetSchema = Type.Object({ + principal: PostConditionPrincipalSchema, + condition_code: Type.Union([Type.Literal('sent'), Type.Literal('not_sent')]), + type: Type.Literal('non_fungible'), + asset_value: Type.Object({ + hex: Type.String(), + repr: Type.String(), + }), + asset: Type.Object({ + asset_name: Type.String(), + contract_address: Type.String(), + contract_name: Type.String(), + }), +}); + +export const PostConditionSchema = Type.Union([ + PostConditionStxSchema, + PostConditionFungibleAssetSchema, + PostConditionNonFungibleAssetSchema, +]); +export type PostCondition = Static; diff --git a/src/api/schemas/entities/transaction-events.ts b/src/api/schemas/entities/transaction-events.ts new file mode 100644 index 000000000..982638bf9 --- /dev/null +++ b/src/api/schemas/entities/transaction-events.ts @@ -0,0 +1,156 @@ +import { Static, Type } from '@sinclair/typebox'; +import { CommaStringList } from '../util'; + +export const TransactionEventAssetTypeSchema = Type.Enum({ + transfer: 'transfer', + mint: 'mint', + burn: 'burn', +}); + +export const TransactionEventType = { + smart_contract_log: 'smart_contract_log', + stx_lock: 'stx_lock', + stx_asset: 'stx_asset', + fungible_token_asset: 'fungible_token_asset', + non_fungible_token_asset: 'non_fungible_token_asset', +}; +export const TransactionEventTypeSchema = Type.Enum(TransactionEventType); +export const TransactionEventTypeCommaListSchema = CommaStringList(TransactionEventType, { + description: 'Comma separated list of transaction event types', + examples: ['smart_contract_log,stx_lock,stx_asset'], +}); + +export const AbstractTransactionEventSchema = Type.Object( + { + event_index: Type.Integer(), + }, + { + title: 'AbstractTransactionEvent', + } +); +export type AbstractTransactionEvent = Static; + +export const SmartContractLogTransactionEventSchema = Type.Intersect( + [ + AbstractTransactionEventSchema, + Type.Object({ + event_type: Type.Literal('smart_contract_log'), + tx_id: Type.String(), + contract_log: Type.Object({ + contract_id: Type.String(), + topic: Type.String(), + value: Type.Object({ + hex: Type.String(), + repr: Type.String(), + }), + }), + }), + ], + { + title: 'SmartContractLogTransactionEvent', + description: 'Only present in `smart_contract` and `contract_call` tx types.', + } +); +export type SmartContractLogTransactionEvent = Static< + typeof SmartContractLogTransactionEventSchema +>; + +export const StxLockTransactionEventSchema = Type.Intersect( + [ + AbstractTransactionEventSchema, + Type.Object({ + event_type: Type.Literal('stx_lock'), + tx_id: Type.String(), + stx_lock_event: Type.Object({ + locked_amount: Type.String(), + unlock_height: Type.Integer(), + locked_address: Type.String(), + }), + }), + ], + { + title: 'StxLockTransactionEvent', + description: 'Only present in `smart_contract` and `contract_call` tx types.', + } +); +export type StxLockTransactionEvent = Static; + +export const StxAssetTransactionEventSchema = Type.Intersect( + [ + AbstractTransactionEventSchema, + Type.Object({ + event_type: Type.Literal('stx_asset'), + tx_id: Type.String(), + asset: Type.Object({ + asset_event_type: TransactionEventAssetTypeSchema, + sender: Type.String(), + recipient: Type.String(), + amount: Type.String(), + memo: Type.Optional(Type.String()), + }), + }), + ], + { + title: 'StxAssetTransactionEvent', + description: 'Only present in `smart_contract` and `contract_call` tx types.', + } +); +export type StxAssetTransactionEvent = Static; + +export const FungibleTokenAssetTransactionEventSchema = Type.Intersect( + [ + AbstractTransactionEventSchema, + Type.Object({ + event_type: Type.Literal('fungible_token_asset'), + tx_id: Type.String(), + asset: Type.Object({ + asset_event_type: TransactionEventAssetTypeSchema, + asset_id: Type.String(), + sender: Type.String(), + recipient: Type.String(), + amount: Type.String(), + }), + }), + ], + { + title: 'FungibleTokenAssetTransactionEvent', + } +); +export type FungibleTokenAssetTransactionEvent = Static< + typeof FungibleTokenAssetTransactionEventSchema +>; + +export const NonFungibleTokenAssetTransactionEventSchema = Type.Intersect( + [ + AbstractTransactionEventSchema, + Type.Object({ + event_type: Type.Literal('non_fungible_token_asset'), + tx_id: Type.String(), + asset: Type.Object({ + asset_event_type: TransactionEventAssetTypeSchema, + asset_id: Type.String(), + sender: Type.String(), + recipient: Type.String(), + value: Type.Object({ + hex: Type.String(), + repr: Type.String(), + }), + }), + }), + ], + { + title: 'NonFungibleTokenAssetTransactionEvent', + } +); +export type NonFungibleTokenAssetTransactionEvent = Static< + typeof NonFungibleTokenAssetTransactionEventSchema +>; + +export const TransactionEventSchema = Type.Union([ + SmartContractLogTransactionEventSchema, + StxLockTransactionEventSchema, + StxAssetTransactionEventSchema, + FungibleTokenAssetTransactionEventSchema, + NonFungibleTokenAssetTransactionEventSchema, +]); +export type TransactionEvent = Static; diff --git a/src/api/schemas/entities/transactions.ts b/src/api/schemas/entities/transactions.ts new file mode 100644 index 000000000..fa0c2496c --- /dev/null +++ b/src/api/schemas/entities/transactions.ts @@ -0,0 +1,433 @@ +import { Static, Type } from '@sinclair/typebox'; +import { CommaStringList, Nullable } from '../util'; +import { PostConditionModeSchema, PostConditionSchema } from './post-conditions'; +import { MempoolTransactionSchema } from './mempool-transactions'; +import { TransactionEventSchema } from './transaction-events'; + +export const TransactionType = { + coinbase: 'coinbase', + token_transfer: 'token_transfer', + smart_contract: 'smart_contract', + contract_call: 'contract_call', + poison_microblock: 'poison_microblock', + tenure_change: 'tenure_change', +} as const; +export const TransactionTypeSchema = Type.Enum(TransactionType); +// Comma-separated list of transaction types, e.g. `coinbase,token_transfer` +export const TransactionTypeStringSchema = CommaStringList(TransactionType, { + description: 'Comma separated list of transaction types', + examples: ['coinbase,token_transfer,smart_contract'], +}); + +export const BaseTransactionSchema = Type.Object( + { + tx_id: Type.String({ + description: 'Transaction ID', + }), + nonce: Type.Integer({ + description: + "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + }), + fee_rate: Type.String({ + description: 'Transaction fee as Integer string (64-bit unsigned integer).', + }), + sender_address: Type.String({ + description: 'Address of the transaction initiator', + }), + sponsor_nonce: Type.Optional(Type.Integer()), + sponsored: Type.Boolean({ + description: 'Denotes whether the originating account is the same as the paying account', + }), + sponsor_address: Type.Optional(Type.String()), + post_condition_mode: PostConditionModeSchema, + post_conditions: Type.Array(PostConditionSchema), + anchor_mode: Type.Union( + [Type.Literal('on_chain_only'), Type.Literal('off_chain_only'), Type.Literal('any')], + { + description: + '`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.', + } + ), + }, + { + title: 'BaseTransaction', + description: + 'Transaction properties that are available from a raw serialized transactions. These are available for transactions in the mempool as well as mined transactions.', + } +); +export type BaseTransaction = Static; + +const AbstractTransactionSchema = Type.Intersect([ + BaseTransactionSchema, + Type.Object({ + block_hash: Type.String({ + description: 'Hash of the blocked this transactions was associated with', + }), + block_height: Type.Integer({ + description: 'Height of the block this transactions was associated with', + }), + block_time: Type.Number({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + block_time_iso: Type.String({ + description: 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.', + }), + burn_block_time: Type.Integer({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + burn_block_height: Type.Integer({ + description: 'Height of the anchor burn block.', + }), + burn_block_time_iso: Type.String({ + description: + 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.', + }), + parent_burn_block_time: Type.Integer({ + description: 'Unix timestamp (in seconds) indicating when this parent block was mined', + }), + parent_burn_block_time_iso: Type.String({ + description: + 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.', + }), + canonical: Type.Boolean({ + description: 'Set to `true` if block corresponds to the canonical chain tip', + }), + tx_index: Type.Integer({ + description: + 'Index of the transaction, indicating the order. Starts at `0` and increases with each transaction', + }), + tx_status: Type.Union( + [ + Type.Literal('success'), + Type.Literal('abort_by_response'), + Type.Literal('abort_by_post_condition'), + ], + { + description: 'Status of the transaction', + } + ), + tx_result: Type.Object( + { + hex: Type.String({ + description: 'Hex string representing the value fo the transaction result', + }), + repr: Type.String({ + description: 'Readable string of the transaction result', + }), + }, + { + description: + 'Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.', + additionalProperties: false, + } + ), + event_count: Type.Integer({ + description: 'Number of transaction events', + }), + parent_block_hash: Type.String({ + description: 'Hash of the previous block.', + }), + is_unanchored: Type.Boolean({ + description: + 'True if the transaction is included in a microblock that has not been confirmed by an anchor block.', + }), + microblock_hash: Type.String({ + description: + 'The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.', + }), + microblock_sequence: Type.Integer({ + description: + 'The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).', + }), + microblock_canonical: Type.Boolean({ + description: + 'Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.', + }), + execution_cost_read_count: Type.Integer({ + description: 'Execution cost read count.', + }), + execution_cost_read_length: Type.Integer({ + description: 'Execution cost read length.', + }), + execution_cost_runtime: Type.Integer({ + description: 'Execution cost runtime.', + }), + execution_cost_write_count: Type.Integer({ + description: 'Execution cost write count.', + }), + execution_cost_write_length: Type.Integer({ + description: 'Execution cost write length.', + }), + events: Type.Array(TransactionEventSchema), + }), +]); +export type AbstractTransaction = Static; + +export const TokenTransferTransactionMetadataSchema = Type.Object( + { + tx_type: Type.Literal('token_transfer'), + token_transfer: Type.Object({ + recipient_address: Type.String(), + amount: Type.String({ + description: 'Transfer amount as Integer string (64-bit unsigned integer)', + }), + memo: Type.String({ + description: + 'Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)', + }), + }), + }, + { + title: 'TokenTransferTransactionMetadata', + description: 'Metadata associated with token-transfer type transactions', + } +); +export type TokenTransferTransactionMetadata = Static< + typeof TokenTransferTransactionMetadataSchema +>; + +export const SmartContractTransactionMetadataSchema = Type.Object( + { + tx_type: Type.Literal('smart_contract'), + smart_contract: Type.Object({ + clarity_version: Nullable( + Type.Number({ + description: + 'The Clarity version of the contract, only specified for versioned contract transactions, otherwise null', + }) + ), + contract_id: Type.String({ + description: 'Contract identifier formatted as `.`', + }), + source_code: Type.String({ + description: 'Clarity code of the smart contract being deployed', + }), + }), + }, + { + title: 'SmartContractTransactionMetadata', + description: + 'Metadata associated with a contract-deploy type transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-1-instantiating-a-smart-contract', + } +); +export type SmartContractTransactionMetadata = Static< + typeof SmartContractTransactionMetadataSchema +>; + +export const ContractCallTransactionMetadataSchema = Type.Object( + { + tx_type: Type.Literal('contract_call'), + contract_call: Type.Object({ + contract_id: Type.String({ + description: 'Contract identifier formatted as `.`', + }), + function_name: Type.String({ + description: 'Name of the Clarity function to be invoked', + }), + function_signature: Type.String({ + description: + 'Function definition, including function name and type as well as parameter names and types', + }), + function_args: Type.Optional( + Type.Array( + Type.Object( + { + hex: Type.String(), + repr: Type.String(), + name: Type.String(), + type: Type.String(), + }, + { + additionalProperties: false, + description: 'List of arguments used to invoke the function', + } + ) + ) + ), + }), + }, + { + title: 'ContractCallTransactionMetadata', + description: 'Metadata associated with a contract-call type transaction', + } +); +export type ContractCallTransactionMetadata = Static; + +export const PoisonMicroblockTransactionMetadataSchema = Type.Object( + { + tx_type: Type.Literal('poison_microblock'), + poison_microblock: Type.Object({ + microblock_header_1: Type.String({ + description: 'Hex encoded microblock header', + }), + microblock_header_2: Type.String({ + description: 'Hex encoded microblock header', + }), + }), + }, + { + title: 'PoisonMicroblockTransactionMetadata', + description: 'Metadata associated with a poison-microblock type transaction', + } +); +export type PoisonMicroblockTransactionMetadata = Static< + typeof PoisonMicroblockTransactionMetadataSchema +>; + +export const CoinbaseTransactionMetadataSchema = Type.Object( + { + tx_type: Type.Literal('coinbase'), + coinbase_payload: Type.Object({ + data: Type.String({ + type: 'string', + description: "Hex encoded 32-byte scratch space for block leader's use", + }), + alt_recipient: Type.Optional( + Nullable( + Type.String({ + description: + 'A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.', + }) + ) + ), + vrf_proof: Type.Optional( + Nullable( + Type.String({ + description: 'Hex encoded 80-byte VRF proof', + }) + ) + ), + }), + }, + { + title: 'CoinbaseTransaction', + description: 'Metadata associated with a coinbase type transaction', + } +); +export type CoinbaseTransactionMetadata = Static; + +export const TenureChangeTransactionMetadataSchema = Type.Object( + { + tx_type: Type.Literal('tenure_change'), + tenure_change_payload: Type.Object({ + tenure_consensus_hash: Type.String({ + description: + 'Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.', + }), + prev_tenure_consensus_hash: Type.String({ + description: + 'Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.', + }), + burn_view_consensus_hash: Type.String({ + description: + 'Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.', + }), + previous_tenure_end: Type.String({ + description: '(Hex string) Stacks Block hash', + }), + previous_tenure_blocks: Type.Integer({ + description: 'The number of blocks produced in the previous tenure.', + }), + cause: Type.Union([Type.Literal('block_found'), Type.Literal('extended')], { + description: + 'Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.', + }), + pubkey_hash: Type.String({ + description: '(Hex string) The ECDSA public key hash of the current tenure.', + }), + }), + }, + { + title: 'TenureChangeTransaction', + description: 'Describes representation of a Type 7 Stacks transaction: Tenure Change', + } +); +export type TenureChangeTransactionMetadata = Static; + +export const TokenTransferTransactionSchema = Type.Intersect([ + AbstractTransactionSchema, + TokenTransferTransactionMetadataSchema, +]); + +export const SmartContractTransactionSchema = Type.Intersect([ + AbstractTransactionSchema, + SmartContractTransactionMetadataSchema, +]); + +export const ContractCallTransactionSchema = Type.Intersect([ + AbstractTransactionSchema, + ContractCallTransactionMetadataSchema, +]); + +export const PoisonMicroblockTransactionSchema = Type.Intersect([ + AbstractTransactionSchema, + PoisonMicroblockTransactionMetadataSchema, +]); + +export const CoinbaseTransactionSchema = Type.Intersect([ + AbstractTransactionSchema, + CoinbaseTransactionMetadataSchema, +]); + +export const TenureChangeTransactionSchema = Type.Intersect([ + AbstractTransactionSchema, + TenureChangeTransactionMetadataSchema, +]); + +const TransactionMetadataSchema = Type.Union([ + TokenTransferTransactionMetadataSchema, + SmartContractTransactionMetadataSchema, + ContractCallTransactionMetadataSchema, + PoisonMicroblockTransactionMetadataSchema, + CoinbaseTransactionMetadataSchema, + TenureChangeTransactionMetadataSchema, +]); +export type TransactionMetadata = Static; + +export const TransactionSchema = Type.Union([ + TokenTransferTransactionSchema, + SmartContractTransactionSchema, + ContractCallTransactionSchema, + PoisonMicroblockTransactionSchema, + CoinbaseTransactionSchema, + TenureChangeTransactionSchema, +]); +export type Transaction = Static; + +export const TransactionFoundSchema = Type.Object( + { + found: Type.Literal(true), + result: Type.Union([TransactionSchema, MempoolTransactionSchema]), + }, + { + title: 'TransactionFound', + description: 'This object returns transaction for found true', + } +); +export type TransactionFound = Static; + +export const TransactionNotFoundSchema = Type.Object( + { + found: Type.Literal(false), + result: Type.Object({ + tx_id: Type.String(), + }), + }, + { + title: 'TransactionNotFound', + description: 'This object returns the id for not found transaction', + } +); +export type TransactionNotFound = Static; + +export const TransactionSearchResultSchema = Type.Union([ + TransactionFoundSchema, + TransactionNotFoundSchema, +]); +export type TransactionSearchResult = Static; + +export const TransactionSearchResponseSchema = Type.Record( + Type.String(), + TransactionSearchResultSchema +); +export type TransactionSearchResponse = Static; diff --git a/src/api/schemas/params.ts b/src/api/schemas/params.ts new file mode 100644 index 000000000..a0b4a6f66 --- /dev/null +++ b/src/api/schemas/params.ts @@ -0,0 +1,83 @@ +import { Type } from '@sinclair/typebox'; +import { pagingQueryLimits, ResourceType } from '../pagination'; + +export const OffsetParam = (title?: string, description?: string) => + Type.Integer({ + minimum: 0, + default: 0, + title: title ?? 'Offset', + description: description ?? 'Result offset', + }); + +export const LimitParam = (resource: ResourceType, title?: string, description?: string) => + Type.Integer({ + minimum: 0, + default: pagingQueryLimits[resource].defaultLimit, + maximum: pagingQueryLimits[resource].maxLimit, + title: title ?? 'Limit', + description: description ?? 'Results per page', + }); + +export const UnanchoredParamSchema = Type.Boolean({ default: false }); + +export const TransactionIdParamSchema = Type.String({ + pattern: '^(0x)?[a-fA-F0-9]{64}$', + title: 'Transaction ID', + description: 'Transaction ID', + examples: ['0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6'], +}); + +export const TransactionIdCommaListParamSchema = Type.String({ + pattern: '^(0x)?[a-fA-F0-9]{64}(,(0x)?[a-fA-F0-9]{64})*$', + title: 'Comma separated list of transaction IDs', + description: 'Comma separate list of transaction IDs', + examples: [ + '0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6,0xbf06fc00be4333166b9a9be0557b9f560bee8700dfe7988bd3d3df1f1a077ed8', + ], +}); + +export const BlockHeightSchema = Type.Integer({ + minimum: 0, + title: 'Block height', + description: 'Block height', + examples: [777678], +}); + +export const AddressParamSchema = Type.String({ + pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}', + title: 'STX Address', + description: 'STX Address', + examples: ['SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP'], +}); + +export const SmartContractIdParamSchema = Type.String({ + pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$', + title: 'Smart Contract ID', + description: 'Smart Contract ID', + examples: ['SP000000000000000000002Q6VF78.pox-3'], +}); + +export const PrincipalSchema = Type.Union([AddressParamSchema, SmartContractIdParamSchema]); + +export const MempoolOrderByParamSchema = Type.Enum( + { + age: 'age', + size: 'size', + fee: 'fee', + }, + { + title: 'Order By', + description: 'Option to sort results by transaction age, size, or fee rate.', + } +); + +export const OrderParamSchema = Type.Enum( + { + asc: 'asc', + desc: 'desc', + }, + { + title: 'Order', + description: 'Results order', + } +); diff --git a/src/api/schemas/responses/responses.ts b/src/api/schemas/responses/responses.ts index 83124b245..e8f472b88 100644 --- a/src/api/schemas/responses/responses.ts +++ b/src/api/schemas/responses/responses.ts @@ -1,7 +1,13 @@ -import { Static, TSchema, Type } from '@sinclair/typebox'; +import { Static, Type } from '@sinclair/typebox'; +import { OptionalNullable } from '../util'; +import { MempoolStatsSchema } from '../entities/mempool-transactions'; -const Nullable = (schema: T) => Type.Union([schema, Type.Null()]); -const OptionalNullable = (schema: T) => Type.Optional(Nullable(schema)); +export const ErrorResponseSchema = Type.Object( + { + error: Type.String(), + }, + { title: 'Error Response' } +); export const ServerStatusResponseSchema = Type.Object( { @@ -44,3 +50,35 @@ export const ServerStatusResponseSchema = Type.Object( { title: 'Api Status Response' } ); export type ServerStatusResponse = Static; + +export const MempoolStatsResponseSchema = Type.Object( + { + tx_type_counts: Type.Record(Type.String(), Type.Integer(), { + additionalProperties: false, + description: 'Number of tranasction in the mempool, broken down by transaction type.', + }), + tx_simple_fee_averages: Type.Record(Type.String(), MempoolStatsSchema, { + description: + 'The simple mean (average) transaction fee, broken down by transaction type. Note that this does not factor in actual execution costs. The average fee is not a reliable metric for calculating a fee for a new transaction.', + }), + tx_ages: Type.Record(Type.String(), MempoolStatsSchema, { + description: + 'The average time (in blocks) that transactions have lived in the mempool. The start block height is simply the current chain-tip of when the attached Stacks node receives the transaction. This timing can be different across Stacks nodes / API instances due to propagation timing differences in the p2p network.', + }), + tx_byte_sizes: Type.Record(Type.String(), MempoolStatsSchema, { + description: + 'The average byte size of transactions in the mempool, broken down by transaction type.', + }), + }, + { + title: 'MempoolTransactionStatsResponse', + description: 'GET request that returns stats on mempool transactions', + } +); + +export const RawTransactionResponseSchema = Type.Object( + { + raw_tx: Type.String(), + }, + { title: 'GetRawTransactionResult', description: 'GET raw transaction' } +); diff --git a/src/api/schemas/util.ts b/src/api/schemas/util.ts new file mode 100644 index 000000000..a8a9823a8 --- /dev/null +++ b/src/api/schemas/util.ts @@ -0,0 +1,26 @@ +import { StringOptions, TEnumKey, TEnumValue, TSchema, Type } from '@sinclair/typebox'; + +export const Nullable = (schema: T) => Type.Union([schema, Type.Null()]); +export const OptionalNullable = (schema: T) => Type.Optional(Nullable(schema)); +export const PaginatedResponse = (type: T, title?: string) => + Type.Object( + { + limit: Type.Integer({ examples: [20] }), + offset: Type.Integer({ examples: [0] }), + total: Type.Integer({ examples: [1] }), + results: Type.Array(type), + }, + { title } + ); + +// Comma-separated list of enum values, e.g. `age,size,fee` +export const CommaStringList = >( + item: T, + options?: StringOptions +) => { + const anyItemPattern = Object.values(item).join('|'); + return Type.String({ + pattern: `^(${anyItemPattern})(,(${anyItemPattern}))*$`, + ...options, + }); +}; diff --git a/src/datastore/pg-store.ts b/src/datastore/pg-store.ts index e6fc79d1a..d8bda1c09 100644 --- a/src/datastore/pg-store.ts +++ b/src/datastore/pg-store.ts @@ -1301,8 +1301,8 @@ export class PgStore extends BasePgStore { limit: number; offset: number; includeUnanchored: boolean; - orderBy?: MempoolOrderByParam; - order?: OrderParam; + orderBy?: 'fee' | 'size' | 'age'; + order?: 'asc' | 'desc'; senderAddress?: string; recipientAddress?: string; address?: string; From 3bf7800b6ccb728285bff1e287d50b65cfec1168 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 31 Jul 2024 09:11:53 +0200 Subject: [PATCH 03/56] feat: refactor `/extended/v1/stx_supply/*` endpoints to fastify --- src/api/init.ts | 5 +- src/api/routes/stx-supply.ts | 231 +++++++++++++++++++++++++++-------- src/api/schemas/params.ts | 5 +- 3 files changed, 187 insertions(+), 54 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index b51dbc9bf..f36556176 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -13,7 +13,7 @@ import { createBlockRouter } from './routes/block'; import { createFaucetRouter } from './routes/faucets'; import { createAddressRouter } from './routes/address'; import { createSearchRouter } from './routes/search'; -import { createStxSupplyRouter } from './routes/stx-supply'; +import { StxSupplyRoutes } from './routes/stx-supply'; import { createRosettaNetworkRouter } from './routes/rosetta/network'; import { createRosettaMempoolRouter } from './routes/rosetta/mempool'; import { createRosettaBlockRouter } from './routes/rosetta/block'; @@ -216,7 +216,6 @@ export async function startApiServer(opts: { v1.use('/address', createAddressRouter(datastore, chainId)); v1.use('/search', createSearchRouter(datastore)); v1.use('/info', createInfoRouter(datastore)); - v1.use('/stx_supply', createStxSupplyRouter(datastore)); v1.use('/debug', createDebugRouter(datastore)); v1.use('/status', (req, res) => res.redirect(`${req.baseUrl.replace(/v1\/status/, '')}${getReqQuery(req)}`) @@ -420,6 +419,7 @@ export async function startApiServer(opts: { }); await fastify.register(StatusRoutes); await fastify.register(TxRoutes, { prefix: '/extended/v1/tx' }); + await fastify.register(StxSupplyRoutes, { prefix: '/extended/v1/stx_supply' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -432,6 +432,7 @@ export async function startApiServer(opts: { '^/extended$', '^/extended/v1/status', '^/extended/v1/tx', + '^/extended/v1/stx_supply', // '^/extended/v1/TODO', // '^/extended/v1/TODO', // '^/extended/v1/TODO', diff --git a/src/api/routes/stx-supply.ts b/src/api/routes/stx-supply.ts index fe1363871..1d3ed82ec 100644 --- a/src/api/routes/stx-supply.ts +++ b/src/api/routes/stx-supply.ts @@ -1,21 +1,17 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; import BigNumber from 'bignumber.js'; import { microStxToStx, STACKS_DECIMAL_PLACES, TOTAL_STACKS } from '../../helpers'; -import { - GetStxCirculatingSupplyPlainResponse, - GetStxSupplyLegacyFormatResponse, - GetStxSupplyResponse, - GetStxTotalSupplyPlainResponse, -} from '@stacks/stacks-blockchain-api-types'; -import { getBlockParams } from '../query-helpers'; -import { PgStore } from '../../datastore/pg-store'; -import { getETagCacheHandler, setETagCacheHeaders } from '../controllers/cache-controller'; +import { handleChainTipCache } from '../controllers/cache-controller'; -export function createStxSupplyRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { UnanchoredParamSchema } from '../schemas/params'; +export const StxSupplyRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { async function getStxSupplyInfo( args: | { @@ -30,7 +26,7 @@ export function createStxSupplyRouter(db: PgStore): express.Router { unlockedStx: string; blockHeight: number; }> { - const { stx: unlockedSupply, blockHeight } = await db.getUnlockedStxSupply(args); + const { stx: unlockedSupply, blockHeight } = await fastify.db.getUnlockedStxSupply(args); const totalMicroStx = new BigNumber(TOTAL_STACKS).shiftedBy(STACKS_DECIMAL_PLACES); const unlockedPercent = new BigNumber(unlockedSupply.toString()) .div(totalMicroStx) @@ -44,52 +40,187 @@ export function createStxSupplyRouter(db: PgStore): express.Router { }; } - router.get( + fastify.get( '/', - cacheHandler, - asyncHandler(async (req, res, next) => { - const blockParams = getBlockParams(req, res, next); - const supply = await getStxSupplyInfo(blockParams); - const result: GetStxSupplyResponse = { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_stx_supply', + summary: 'Get total and unlocked STX supply', + description: `Retrieves the total and unlocked STX supply. More information on Stacking can be found [here] (https://docs.stacks.co/understand-stacks/stacking). + **Note:** This uses the estimated future total supply for the year 2050.`, + tags: ['Info'], + querystring: Type.Object({ + height: Type.Optional( + Type.Integer({ + minimum: 0, + title: 'Block height', + description: + 'Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. Note that the `block height` is referred to the stacks blockchain.', + examples: [777678], + }) + ), + unanchored: Type.Optional(UnanchoredParamSchema), + }), + response: { + 200: Type.Object( + { + unlocked_percent: Type.String({ + description: + 'String quoted decimal number of the percentage of STX that have unlocked', + }), + total_stx: Type.String({ + description: 'String quoted decimal number of the total possible number of STX', + }), + unlocked_stx: Type.String({ + description: + 'String quoted decimal number of the STX that have been mined or unlocked', + }), + block_height: Type.Integer({ + description: 'The block height at which this information was queried', + }), + }, + { + title: 'GetStxSupplyResponse', + description: 'GET request that returns network target block times', + } + ), + }, + }, + }, + async (req, reply) => { + const blockHeight = req.query.height; + const supply = await getStxSupplyInfo( + blockHeight !== undefined + ? { blockHeight } + : { includeUnanchored: req.query.unanchored ?? false } + ); + await reply.send({ unlocked_percent: supply.unlockedPercent, total_stx: supply.totalStx, unlocked_stx: supply.unlockedStx, block_height: supply.blockHeight, - }; - setETagCacheHeaders(res); - res.json(result); - }) + }); + } ); - router.get( + fastify.get( '/total/plain', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_stx_supply_total_supply_plain', + summary: 'Get total STX supply in plain text format', + description: `Retrieves the total supply for STX tokens as plain text. + **Note:** this uses the estimated future total supply for the year 2050.`, + tags: ['Info'], + response: { + 200: { + content: { + 'text/plain': { + type: 'string', + }, + }, + }, + }, + }, + }, + async (_req, reply) => { const supply = await getStxSupplyInfo({ includeUnanchored: false }); - const result: GetStxTotalSupplyPlainResponse = supply.totalStx; - setETagCacheHeaders(res); - res.type('text/plain').send(result); - }) + await reply.type('text/plain').send(supply.totalStx); + } ); - router.get( + fastify.get( '/circulating/plain', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_stx_supply_circulating_plain', + summary: 'Get circulating STX supply in plain text format', + description: `Retrieves the STX tokens currently in circulation that have been unlocked as plain text.`, + tags: ['Info'], + response: { + 200: { + content: { + 'text/plain': { + type: 'string', + }, + }, + }, + }, + }, + }, + async (_req, reply) => { const supply = await getStxSupplyInfo({ includeUnanchored: false }); - const result: GetStxCirculatingSupplyPlainResponse = supply.unlockedStx; - setETagCacheHeaders(res); - res.type('text/plain').send(result); - }) + await reply.type('text/plain').send(supply.unlockedStx); + } ); - router.get( + fastify.get( '/legacy_format', - cacheHandler, - asyncHandler(async (req, res, next) => { - const blockParams = getBlockParams(req, res, next); - const supply = await getStxSupplyInfo(blockParams); - const result: GetStxSupplyLegacyFormatResponse = { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_total_stx_supply_legacy_format', + summary: + 'Get total and unlocked STX supply (results formatted the same as the legacy 1.0 API)', + description: `Retrieves total supply of STX tokens including those currently in circulation that have been unlocked. + **Note:** this uses the estimated future total supply for the year 2050.`, + tags: ['Info'], + querystring: Type.Object({ + height: Type.Optional( + Type.Integer({ + minimum: 0, + title: 'Block height', + description: + 'Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. Note that the `block height` is referred to the stacks blockchain.', + examples: [777678], + }) + ), + unanchored: Type.Optional(UnanchoredParamSchema), + }), + response: { + 200: Type.Object( + { + unlockedPercent: Type.String({ + description: + 'String quoted decimal number of the percentage of STX that have unlocked', + }), + totalStacks: Type.String({ + description: 'String quoted decimal number of the total possible number of STX', + }), + totalStacksFormatted: Type.String({ + description: 'Same as `totalStacks` but formatted with comma thousands separators', + }), + unlockedSupply: Type.String({ + description: + 'String quoted decimal number of the STX that have been mined or unlocked', + }), + unlockedSupplyFormatted: Type.String({ + description: + 'Same as `unlockedSupply` but formatted with comma thousands separators', + }), + blockHeight: Type.String({ + description: 'The block height at which this information was queried', + }), + }, + { + title: 'GetStxSupplyLegacyFormatResponse', + description: 'GET request that returns network target block times', + } + ), + }, + }, + }, + async (req, reply) => { + const blockHeight = req.query.height; + const supply = await getStxSupplyInfo( + blockHeight !== undefined + ? { blockHeight } + : { includeUnanchored: req.query.unanchored ?? false } + ); + await reply.send({ unlockedPercent: supply.unlockedPercent, totalStacks: supply.totalStx, totalStacksFormatted: new BigNumber(supply.totalStx).toFormat(STACKS_DECIMAL_PLACES, 8), @@ -99,11 +230,9 @@ export function createStxSupplyRouter(db: PgStore): express.Router { 8 ), blockHeight: supply.blockHeight.toString(), - }; - setETagCacheHeaders(res); - res.json(result); - }) + }); + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/schemas/params.ts b/src/api/schemas/params.ts index a0b4a6f66..e828b32ba 100644 --- a/src/api/schemas/params.ts +++ b/src/api/schemas/params.ts @@ -18,7 +18,10 @@ export const LimitParam = (resource: ResourceType, title?: string, description?: description: description ?? 'Results per page', }); -export const UnanchoredParamSchema = Type.Boolean({ default: false }); +export const UnanchoredParamSchema = Type.Boolean({ + default: false, + description: 'Include data from unanchored (i.e. unconfirmed) microblocks', +}); export const TransactionIdParamSchema = Type.String({ pattern: '^(0x)?[a-fA-F0-9]{64}$', From 07df5d1d2757dcdfb5b9f2c6c11d7e7791432382 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 31 Jul 2024 10:40:21 +0200 Subject: [PATCH 04/56] feat: refactor `/extended/v1/info/*` endpoints to fastify --- src/api/init.ts | 5 +- src/api/routes/info.ts | 114 +++++++++++++++++++++++++---------------- 2 files changed, 73 insertions(+), 46 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index f36556176..bf040cb76 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -6,7 +6,7 @@ import * as cors from 'cors'; import { TxRoutes } from './routes/tx'; import { createDebugRouter } from './routes/debug'; -import { createInfoRouter } from './routes/info'; +import { InfoRoutes } from './routes/info'; import { createContractRouter } from './routes/contract'; import { createCoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; import { createBlockRouter } from './routes/block'; @@ -215,7 +215,6 @@ export async function startApiServer(opts: { v1.use('/contract', createContractRouter(datastore)); v1.use('/address', createAddressRouter(datastore, chainId)); v1.use('/search', createSearchRouter(datastore)); - v1.use('/info', createInfoRouter(datastore)); v1.use('/debug', createDebugRouter(datastore)); v1.use('/status', (req, res) => res.redirect(`${req.baseUrl.replace(/v1\/status/, '')}${getReqQuery(req)}`) @@ -420,6 +419,7 @@ export async function startApiServer(opts: { await fastify.register(StatusRoutes); await fastify.register(TxRoutes, { prefix: '/extended/v1/tx' }); await fastify.register(StxSupplyRoutes, { prefix: '/extended/v1/stx_supply' }); + await fastify.register(InfoRoutes, { prefix: '/extended/v1/info' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -433,6 +433,7 @@ export async function startApiServer(opts: { '^/extended/v1/status', '^/extended/v1/tx', '^/extended/v1/stx_supply', + '^/extended/v1/info', // '^/extended/v1/TODO', // '^/extended/v1/TODO', // '^/extended/v1/TODO', diff --git a/src/api/routes/info.ts b/src/api/routes/info.ts index 6f7fb50dc..517ec10d8 100644 --- a/src/api/routes/info.ts +++ b/src/api/routes/info.ts @@ -1,13 +1,7 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; -import { validate } from '../validate'; -import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; -import { - NetworkBlockTimesResponse, - NetworkBlockTimeResponse, -} from '@stacks/stacks-blockchain-api-types'; -import { PgStore } from '../../datastore/pg-store'; -import { isProdEnv } from '@hirosystems/api-toolkit'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { handleChainTipCache } from '../controllers/cache-controller'; const enum TargetBlockTime { /** @@ -22,47 +16,79 @@ const enum TargetBlockTime { Mainnet = 10 * 60, // 10 minutes } -export function createInfoRouter(db: PgStore): express.Router { - const router = express.Router(); - - router.get( +export const InfoRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/network_block_times', - asyncHandler(async (req, res) => { - const response: NetworkBlockTimesResponse = { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_network_block_times', + summary: 'Get the network target block time', + description: `Retrieves the target block times for mainnet and testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet.`, + tags: ['Info'], + response: { + 200: Type.Object( + { + mainnet: Type.Object({ + target_block_time: Type.Integer(), + }), + testnet: Type.Object({ + target_block_time: Type.Integer(), + }), + }, + { + title: 'NetworkBlockTimesResponse', + description: 'GET request that returns network target block times', + } + ), + }, + }, + }, + async (_req, reply) => { + await reply.send({ testnet: { target_block_time: TargetBlockTime.Testnet }, mainnet: { target_block_time: TargetBlockTime.Mainnet }, - }; - if (!isProdEnv) { - const schemaPath = - '@stacks/stacks-blockchain-api-types/api/info/get-network-block-times.schema.json'; - await validate(schemaPath, response); - } - res.json(response); - }) + }); + } ); - router.get( + fastify.get( '/network_block_time/:network', - asyncHandler(async (req, res) => { - const { network } = req.params || req.query; - if (!network || !['testnet', 'mainnet'].includes(network)) { - throw new InvalidRequestError( - '`network` param must be `testnet` or `mainnet`', - InvalidRequestErrorType.invalid_param - ); - } - const response: NetworkBlockTimeResponse = { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_network_block_time_by_network', + summary: `Get a given network's target block time`, + description: `Retrieves the target block time for a given network. The network can be mainnet or testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet.`, + tags: ['Info'], + params: Type.Object({ + network: Type.Enum({ testnet: 'testnet', mainnet: 'mainnet' }), + }), + response: { + 200: Type.Object( + { + target_block_time: Type.Integer(), + }, + { + title: 'NetworkBlockTimeResponse', + description: 'GET request that target block time for a given network', + } + ), + }, + }, + }, + async (req, reply) => { + const { network } = req.params; + await reply.send({ target_block_time: network === 'testnet' ? TargetBlockTime.Testnet : TargetBlockTime.Mainnet, - }; - if (!isProdEnv) { - const schemaPath = - '@stacks/stacks-blockchain-api-types/api/info/get-network-block-time-by-network.schema.json'; - await validate(schemaPath, response); - } - res.json(response); - }) + }); + } ); - return router; -} + await Promise.resolve(); +}; From 802f29801a882e5435ae142811356927684232ab Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 31 Jul 2024 11:58:19 +0200 Subject: [PATCH 05/56] feat: refactor `/extended/v1/tokens/*` endpoints to fastify --- src/api/routes/tokens.ts | 317 +++++++++++++++++++++-------- src/api/routes/tx.ts | 14 +- src/api/schemas/entities/tokens.ts | 105 ++++++++++ src/api/schemas/params.ts | 1 + src/api/schemas/util.ts | 13 +- 5 files changed, 355 insertions(+), 95 deletions(-) create mode 100644 src/api/schemas/entities/tokens.ts diff --git a/src/api/routes/tokens.ts b/src/api/routes/tokens.ts index b89d9b5a7..3aceb2172 100644 --- a/src/api/routes/tokens.ts +++ b/src/api/routes/tokens.ts @@ -14,52 +14,112 @@ import { isValidPrincipal } from '../../helpers'; import { booleanValueForParam, isUnanchoredRequest } from '../query-helpers'; import { decodeClarityValueToRepr } from 'stacks-encoding-native-js'; import { getAssetEventTypeString, parseDbTx } from '../controllers/db-controller'; -import { getETagCacheHandler, setETagCacheHeaders } from '../controllers/cache-controller'; +import { + getETagCacheHandler, + handleChainTipCache, + setETagCacheHeaders, +} from '../controllers/cache-controller'; import { PgStore } from '../../datastore/pg-store'; import { has0xPrefix } from '@hirosystems/api-toolkit'; -export function createTokenRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - router.use(express.json()); +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam, UnanchoredParamSchema } from '../schemas/params'; +import { PaginatedResponse } from '../schemas/util'; +import { TransactionSchema } from '../schemas/entities/transactions'; +import { + NonFungibleTokenHistoryEventWithTxIdSchema, + NonFungibleTokenHistoryEventWithTxMetadataSchema, + NonFungibleTokenHoldingWithTxIdSchema, + NonFungibleTokenHoldingWithTxMetadataSchema, + NonFungibleTokenMintWithTxIdSchema, + NonFungibleTokenMintWithTxMetadataSchema, +} from '../schemas/entities/tokens'; +import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; - router.get( +export const TokenRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/nft/holdings', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_nft_holdings', + summary: 'Non-Fungible Token holdings', + description: `Retrieves the list of Non-Fungible Tokens owned by the given principal (STX address or Smart Contract ID). + Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token. + + More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts).`, + tags: ['Non-Fungible Tokens'], + querystring: Type.Object({ + principal: Type.String({ + description: `token owner's STX address or Smart Contract ID`, + examples: ['SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v3'], + }), + asset_identifiers: Type.Optional( + Type.Array( + Type.String({ + description: 'identifiers of the token asset classes to filter for', + examples: ['SPQZF23W7SEYBFG5JQ496NMY0G7379SRYEDREMSV.Candy::candy'], + }) + ) + ), + limit: LimitParam(ResourceType.Token, 'Limit', 'max number of tokens to fetch'), + offset: OffsetParam('Offset', 'index of first tokens to fetch'), + unanchored: UnanchoredParamSchema, + tx_metadata: Type.Boolean({ + default: false, + description: + 'whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times.', + }), + }), + response: { + 200: PaginatedResponse( + Type.Union( + [NonFungibleTokenHoldingWithTxIdSchema, NonFungibleTokenHoldingWithTxMetadataSchema], + { + title: 'NonFungibleTokenHoldingsList', + description: 'List of Non-Fungible Token holdings', + } + ), + { + description: 'List of Non-Fungible Token holdings', + } + ), + }, + }, + }, + async (req, reply) => { const principal = req.query.principal; if (typeof principal !== 'string' || !isValidPrincipal(principal)) { - res.status(400).json({ error: `Invalid or missing principal` }); - return; + throw new InvalidRequestError( + `Invalid or missing principal`, + InvalidRequestErrorType.invalid_query + ); } let assetIdentifiers: string[] | undefined; - if (req.query.asset_identifiers !== undefined) { - if (typeof req.query.asset_identifiers === 'string') { - if (req.query.asset_identifiers.includes(',')) { - assetIdentifiers = req.query.asset_identifiers.split(','); - } else { - assetIdentifiers = [req.query.asset_identifiers]; - } - } else { - assetIdentifiers = req.query.asset_identifiers as string[]; - } + if (req.query.asset_identifiers) { + assetIdentifiers = req.query.asset_identifiers.flatMap(str => str.split(',') as string[]); for (const assetIdentifier of assetIdentifiers) { - if ( - typeof assetIdentifier !== 'string' || - !isValidPrincipal(assetIdentifier.split('::')[0]) - ) { - res.status(400).json({ error: `Invalid asset identifier ${assetIdentifier}` }); - return; + if (!isValidPrincipal(assetIdentifier.split('::')[0])) { + throw new InvalidRequestError( + `Invalid asset identifier`, + InvalidRequestErrorType.invalid_query + ); } } } const limit = getPagingQueryLimit(ResourceType.Token, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const includeUnanchored = isUnanchoredRequest(req, res, next); - const includeTxMetadata = booleanValueForParam(req, res, next, 'tx_metadata'); + const includeUnanchored = req.query.unanchored ?? false; + const includeTxMetadata = req.query.tx_metadata ?? false; - const { results, total } = await db.getNftHoldings({ + const { results, total } = await fastify.db.getNftHoldings({ principal: principal, assetIdentifiers: assetIdentifiers, offset: offset, @@ -67,7 +127,7 @@ export function createTokenRouter(db: PgStore): express.Router { includeUnanchored: includeUnanchored, includeTxMetadata: includeTxMetadata, }); - const parsedResults: NonFungibleTokenHolding[] = results.map(result => { + const parsedResults = results.map(result => { const parsedClarityValue = decodeClarityValueToRepr(result.nft_holding_info.value); const parsedNftData = { asset_identifier: result.nft_holding_info.asset_identifier, @@ -80,40 +140,81 @@ export function createTokenRouter(db: PgStore): express.Router { if (includeTxMetadata && result.tx) { return { ...parsedNftData, - tx: parseDbTx(result.tx) as import('@stacks/stacks-blockchain-api-types').Transaction, + tx: parseDbTx(result.tx), }; } return { ...parsedNftData, tx_id: result.nft_holding_info.tx_id }; }); - const response: NonFungibleTokenHoldingsList = { + const response = { limit: limit, offset: offset, total: total, results: parsedResults, }; - setETagCacheHeaders(res); - res.status(200).json(response); - }) + await reply.send(response); + } ); - router.get( + fastify.get( '/nft/history', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_nft_history', + summary: 'Non-Fungible Token history', + description: `Retrieves all events relevant to a Non-Fungible Token. Useful to determine the ownership history of a particular asset. + + More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts).`, + tags: ['Non-Fungible Tokens'], + querystring: Type.Object({ + asset_identifier: Type.String({ + description: 'asset class identifier', + examples: [ + 'SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild', + ], + }), + value: Type.String({ + description: `hex representation of the token's unique value`, + examples: ['0x0100000000000000000000000000000803'], + }), + limit: LimitParam(ResourceType.Token, 'Limit', 'max number of events to fetch'), + offset: OffsetParam('Offset', 'index of first event to fetch'), + unachored: UnanchoredParamSchema, + tx_metadata: Type.Boolean({ + default: false, + description: + 'whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times.', + }), + }), + response: { + 200: PaginatedResponse( + Type.Union( + [ + NonFungibleTokenHistoryEventWithTxIdSchema, + NonFungibleTokenHistoryEventWithTxMetadataSchema, + ], + { + title: 'NonFungibleTokenHistoryEvent', + description: 'Describes an event from the history of a Non-Fungible Token', + } + ), + { + description: 'List of Non-Fungible Token history events', + } + ), + }, + }, + }, + async (req, reply) => { const assetIdentifier = req.query.asset_identifier; - if ( - typeof assetIdentifier !== 'string' || - !isValidPrincipal(assetIdentifier.split('::')[0]) - ) { - res.status(400).json({ error: `Invalid or missing asset_identifier` }); - return; + if (!isValidPrincipal(assetIdentifier.split('::')[0])) { + throw new InvalidRequestError( + `Invalid or missing asset_identifier`, + InvalidRequestErrorType.invalid_query + ); } let value = req.query.value; - if (typeof value !== 'string') { - res.status(400).json({ error: `Invalid or missing value` }); - return; - } if (!has0xPrefix(value)) { value = `0x${value}`; } @@ -121,16 +222,16 @@ export function createTokenRouter(db: PgStore): express.Router { const limit = getPagingQueryLimit(ResourceType.Token, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const includeUnanchored = isUnanchoredRequest(req, res, next); - const includeTxMetadata = booleanValueForParam(req, res, next, 'tx_metadata'); + const includeUnanchored = req.query.unachored ?? false; + const includeTxMetadata = req.query.tx_metadata ?? false; - await db + await fastify.db .sqlTransaction(async sql => { - const chainTip = await db.getCurrentBlockHeight(); + const chainTip = await fastify.db.getCurrentBlockHeight(); if (!chainTip.found) { throw { error: `Unable to find a valid block to query` }; } - const { results, total } = await db.getNftHistory({ + const { results, total } = await fastify.db.getNftHistory({ assetIdentifier: assetIdentifier, value: strValue, limit: limit, @@ -138,7 +239,7 @@ export function createTokenRouter(db: PgStore): express.Router { blockHeight: includeUnanchored ? chainTip.result + 1 : chainTip.result, includeTxMetadata: includeTxMetadata, }); - const parsedResults: NonFungibleTokenHistoryEvent[] = results.map(result => { + const parsedResults = results.map(result => { const parsedNftData = { sender: result.nft_event.sender, recipient: result.nft_event.recipient, @@ -148,14 +249,12 @@ export function createTokenRouter(db: PgStore): express.Router { if (includeTxMetadata && result.tx) { return { ...parsedNftData, - tx: parseDbTx( - result.tx - ) as import('@stacks/stacks-blockchain-api-types').Transaction, + tx: parseDbTx(result.tx), }; } return { ...parsedNftData, tx_id: result.nft_event.tx_id }; }); - const response: NonFungibleTokenHistoryEventList = { + const response = { limit: limit, offset: offset, total: total, @@ -163,48 +262,87 @@ export function createTokenRouter(db: PgStore): express.Router { }; return response; }) - .then(response => { - setETagCacheHeaders(res); - res.status(200).json(response); + .then(async response => { + await reply.send(response); }) .catch(error => { - res.status(400).json(error); + throw new InvalidRequestError(error.toString(), InvalidRequestErrorType.bad_request); }); - }) + } ); - router.get( + fastify.get( '/nft/mints', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_nft_mints', + summary: 'Non-Fungible Token mints', + description: `Retrieves all mint events for a Non-Fungible Token asset class. Useful to determine which NFTs of a particular collection have been claimed. + + More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts).`, + tags: ['Non-Fungible Tokens'], + querystring: Type.Object({ + asset_identifier: Type.String({ + description: 'asset class identifier', + examples: [ + 'SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild', + ], + }), + limit: LimitParam(ResourceType.Token, 'Limit', 'max number of events to fetch'), + offset: OffsetParam('Offset', 'index of first event to fetch'), + unachored: UnanchoredParamSchema, + tx_metadata: Type.Boolean({ + default: false, + description: + 'whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times.', + }), + }), + response: { + 200: PaginatedResponse( + Type.Union( + [NonFungibleTokenMintWithTxIdSchema, NonFungibleTokenMintWithTxMetadataSchema], + { + title: 'NonFungibleTokenMint', + description: 'Describes the minting of a Non-Fungible Token', + } + ), + { + title: 'NonFungibleTokenMintList', + description: 'List of Non-Fungible Token mint events for an asset identifier', + } + ), + }, + }, + }, + async (req, reply) => { const assetIdentifier = req.query.asset_identifier; - if ( - typeof assetIdentifier !== 'string' || - !isValidPrincipal(assetIdentifier.split('::')[0]) - ) { - res.status(400).json({ error: `Invalid or missing asset_identifier` }); - return; + if (!isValidPrincipal(assetIdentifier.split('::')[0])) { + throw new InvalidRequestError( + `Invalid or missing asset_identifier`, + InvalidRequestErrorType.invalid_query + ); } const limit = getPagingQueryLimit(ResourceType.Token, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const includeUnanchored = isUnanchoredRequest(req, res, next); - const includeTxMetadata = booleanValueForParam(req, res, next, 'tx_metadata'); + const includeUnanchored = req.query.unachored ?? false; + const includeTxMetadata = req.query.tx_metadata ?? false; - await db + await fastify.db .sqlTransaction(async sql => { - const chainTip = await db.getCurrentBlockHeight(); + const chainTip = await fastify.db.getCurrentBlockHeight(); if (!chainTip.found) { throw { error: `Unable to find a valid block to query` }; } - const { results, total } = await db.getNftMints({ + const { results, total } = await fastify.db.getNftMints({ assetIdentifier: assetIdentifier, limit: limit, offset: offset, blockHeight: includeUnanchored ? chainTip.result + 1 : chainTip.result, includeTxMetadata: includeTxMetadata, }); - const parsedResults: NonFungibleTokenMint[] = results.map(result => { + const parsedResults = results.map(result => { const parsedClarityValue = decodeClarityValueToRepr(result.nft_event.value); const parsedNftData = { recipient: result.nft_event.recipient, @@ -217,14 +355,12 @@ export function createTokenRouter(db: PgStore): express.Router { if (includeTxMetadata && result.tx) { return { ...parsedNftData, - tx: parseDbTx( - result.tx - ) as import('@stacks/stacks-blockchain-api-types').Transaction, + tx: parseDbTx(result.tx), }; } return { ...parsedNftData, tx_id: result.nft_event.tx_id }; }); - const response: NonFungibleTokenMintList = { + const response = { limit: limit, offset: offset, total: total, @@ -232,16 +368,23 @@ export function createTokenRouter(db: PgStore): express.Router { }; return response; }) - .then(response => { - setETagCacheHeaders(res); - res.status(200).json(response); + .then(async response => { + await reply.send(response); }) .catch(error => { - res.status(400).json(error); + throw new InvalidRequestError(error.toString(), InvalidRequestErrorType.bad_request); }); - }) + } ); + await Promise.resolve(); +}; + +export function createTokenRouter(db: PgStore): express.Router { + const router = express.Router(); + const cacheHandler = getETagCacheHandler(db); + router.use(express.json()); + router.get( '/ft/:token/holders', cacheHandler, diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index c116d4488..6d5ec7180 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -134,7 +134,7 @@ export const TxRoutes: FastifyPluginAsync< ), }), response: { - 200: PaginatedResponse(TransactionSchema, 'List of transactions'), + 200: PaginatedResponse(TransactionSchema, { description: 'List of transactions' }), }, }, }, @@ -281,7 +281,9 @@ export const TxRoutes: FastifyPluginAsync< limit: LimitParam(ResourceType.Tx), }), response: { - 200: PaginatedResponse(MempoolTransactionSchema, 'List of mempool transactions'), + 200: PaginatedResponse(MempoolTransactionSchema, { + description: 'List of mempool transactions', + }), }, }, }, @@ -357,7 +359,9 @@ export const TxRoutes: FastifyPluginAsync< limit: LimitParam(ResourceType.Tx), }), response: { - 200: PaginatedResponse(MempoolTransactionSchema, 'List of mempool transactions'), + 200: PaginatedResponse(MempoolTransactionSchema, { + description: 'List of dropped mempool transactions', + }), }, }, }, @@ -610,7 +614,7 @@ export const TxRoutes: FastifyPluginAsync< limit: LimitParam(ResourceType.Tx), }), response: { - 200: PaginatedResponse(TransactionSchema, 'List of transactions'), + 200: PaginatedResponse(TransactionSchema, { description: 'List of transactions' }), 404: ErrorResponseSchema, }, }, @@ -658,7 +662,7 @@ export const TxRoutes: FastifyPluginAsync< limit: LimitParam(ResourceType.Tx), }), response: { - 200: PaginatedResponse(TransactionSchema, 'List of transactions'), + 200: PaginatedResponse(TransactionSchema, { description: 'List of transactions' }), 404: ErrorResponseSchema, }, }, diff --git a/src/api/schemas/entities/tokens.ts b/src/api/schemas/entities/tokens.ts new file mode 100644 index 000000000..cac83b906 --- /dev/null +++ b/src/api/schemas/entities/tokens.ts @@ -0,0 +1,105 @@ +import { Static, Type } from '@sinclair/typebox'; +import { TransactionSchema } from './transactions'; +import { OptionalNullable } from '../util'; + +export const NonFungibleTokenValueSchema = Type.Object( + { + hex: Type.String({ + description: 'Hex string representing the identifier of the Non-Fungible Token', + }), + repr: Type.String({ + description: 'Readable string of the Non-Fungible Token identifier', + }), + }, + { + description: 'Non-Fungible Token value', + } +); + +export const NonFungibleTokenHoldingWithTxIdSchema = Type.Object( + { + asset_identifier: Type.String(), + value: NonFungibleTokenValueSchema, + block_height: Type.Integer(), + tx_id: Type.String(), + }, + { + title: 'NonFungibleTokenHoldingWithTxId', + description: 'Ownership of a Non-Fungible Token', + } +); +export type NonFungibleTokenHoldingWithTxId = Static; + +export const NonFungibleTokenHoldingWithTxMetadataSchema = Type.Object( + { + asset_identifier: Type.String(), + value: NonFungibleTokenValueSchema, + block_height: Type.Integer(), + tx: TransactionSchema, + }, + { + title: 'NonFungibleTokenHoldingWithTxMetadata', + description: 'Ownership of a Non-Fungible Token with transaction metadata', + } +); +export type NonFungibleTokenHoldingWithTxMetadata = Static< + typeof NonFungibleTokenHoldingWithTxMetadataSchema +>; + +export const NonFungibleTokenHistoryEventWithTxIdSchema = Type.Object( + { + sender: OptionalNullable(Type.String()), + recipient: Type.Optional(Type.String()), + event_index: Type.Integer(), + asset_event_type: Type.String(), + tx_id: Type.String(), + }, + { + title: 'NonFungibleTokenHistoryEventWithTxId', + description: 'Non-Fungible Token history event with transaction id', + } +); +export type NonFungibleTokenHistoryEventWithTxId = Static< + typeof NonFungibleTokenHistoryEventWithTxIdSchema +>; + +export const NonFungibleTokenHistoryEventWithTxMetadataSchema = Type.Object( + { + sender: OptionalNullable(Type.String()), + recipient: Type.Optional(Type.String()), + event_index: Type.Integer(), + asset_event_type: Type.String(), + tx: TransactionSchema, + }, + { + title: 'NonFungibleTokenHistoryEventWithTxMetadata', + description: 'Non-Fungible Token history event with transaction metadata', + } +); +export type NonFungibleTokenHistoryEventWithTxMetadata = Static< + typeof NonFungibleTokenHistoryEventWithTxMetadataSchema +>; + +export const NonFungibleTokenMintWithTxIdSchema = Type.Object( + { + recipient: Type.Optional(Type.String()), + event_index: Type.Integer(), + value: NonFungibleTokenValueSchema, + tx_id: Type.String(), + }, + { + title: 'NonFungibleTokenMintWithTxId', + description: 'Non-Fungible Token mint event with transaction id', + } +); +export type NonFungibleTokenMintWithTxId = Static; + +export const NonFungibleTokenMintWithTxMetadataSchema = Type.Object({ + recipient: Type.Optional(Type.String()), + event_index: Type.Integer(), + value: NonFungibleTokenValueSchema, + tx: TransactionSchema, +}); +export type NonFungibleTokenMintWithTxMetadata = Static< + typeof NonFungibleTokenMintWithTxMetadataSchema +>; diff --git a/src/api/schemas/params.ts b/src/api/schemas/params.ts index e828b32ba..ccaa55d81 100644 --- a/src/api/schemas/params.ts +++ b/src/api/schemas/params.ts @@ -21,6 +21,7 @@ export const LimitParam = (resource: ResourceType, title?: string, description?: export const UnanchoredParamSchema = Type.Boolean({ default: false, description: 'Include data from unanchored (i.e. unconfirmed) microblocks', + examples: [true], }); export const TransactionIdParamSchema = Type.String({ diff --git a/src/api/schemas/util.ts b/src/api/schemas/util.ts index a8a9823a8..7c6275fce 100644 --- a/src/api/schemas/util.ts +++ b/src/api/schemas/util.ts @@ -1,8 +1,15 @@ -import { StringOptions, TEnumKey, TEnumValue, TSchema, Type } from '@sinclair/typebox'; +import { + ObjectOptions, + StringOptions, + TEnumKey, + TEnumValue, + TSchema, + Type, +} from '@sinclair/typebox'; export const Nullable = (schema: T) => Type.Union([schema, Type.Null()]); export const OptionalNullable = (schema: T) => Type.Optional(Nullable(schema)); -export const PaginatedResponse = (type: T, title?: string) => +export const PaginatedResponse = (type: T, options?: ObjectOptions) => Type.Object( { limit: Type.Integer({ examples: [20] }), @@ -10,7 +17,7 @@ export const PaginatedResponse = (type: T, title?: string) => total: Type.Integer({ examples: [1] }), results: Type.Array(type), }, - { title } + options ); // Comma-separated list of enum values, e.g. `age,size,fee` From ec00767e78848fb3f94361da5ff9d55db2d1caa8 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 31 Jul 2024 13:37:48 +0200 Subject: [PATCH 06/56] feat: refactor `/extended/v1/tokens/*` endpoints to fastify --- src/api/init.ts | 5 +- src/api/routes/tokens.ts | 102 +++++++++++++++++++++++---------------- 2 files changed, 64 insertions(+), 43 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index bf040cb76..0b38c530c 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -31,7 +31,7 @@ import * as expressListEndpoints from 'express-list-endpoints'; import { createMiddleware as createPrometheusMiddleware } from '@promster/express'; import { createMicroblockRouter } from './routes/microblock'; import { StatusRoutes } from './routes/status'; -import { createTokenRouter } from './routes/tokens'; +import { TokenRoutes } from './routes/tokens'; import { createFeeRateRouter } from './routes/fee-rate'; import { setResponseNonCacheable } from './controllers/cache-controller'; @@ -220,7 +220,6 @@ export async function startApiServer(opts: { res.redirect(`${req.baseUrl.replace(/v1\/status/, '')}${getReqQuery(req)}`) ); v1.use('/fee_rate', createFeeRateRouter(datastore)); - v1.use('/tokens', createTokenRouter(datastore)); // These could be defined in one route but a url reporting library breaks with regex in middleware paths v1.use('/pox2', createPoxEventsRouter(datastore, 'pox2')); @@ -420,6 +419,7 @@ export async function startApiServer(opts: { await fastify.register(TxRoutes, { prefix: '/extended/v1/tx' }); await fastify.register(StxSupplyRoutes, { prefix: '/extended/v1/stx_supply' }); await fastify.register(InfoRoutes, { prefix: '/extended/v1/info' }); + await fastify.register(TokenRoutes, { prefix: '/extended/v1/tokens' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -434,6 +434,7 @@ export async function startApiServer(opts: { '^/extended/v1/tx', '^/extended/v1/stx_supply', '^/extended/v1/info', + '^/extended/v1/tokens', // '^/extended/v1/TODO', // '^/extended/v1/TODO', // '^/extended/v1/TODO', diff --git a/src/api/routes/tokens.ts b/src/api/routes/tokens.ts index 3aceb2172..faf57d317 100644 --- a/src/api/routes/tokens.ts +++ b/src/api/routes/tokens.ts @@ -1,33 +1,16 @@ -import { asyncHandler } from '../async-handler'; -import * as express from 'express'; -import { - FungibleTokenHolderList, - NonFungibleTokenHistoryEvent, - NonFungibleTokenHistoryEventList, - NonFungibleTokenHolding, - NonFungibleTokenHoldingsList, - NonFungibleTokenMint, - NonFungibleTokenMintList, -} from '@stacks/stacks-blockchain-api-types'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; import { isValidPrincipal } from '../../helpers'; -import { booleanValueForParam, isUnanchoredRequest } from '../query-helpers'; import { decodeClarityValueToRepr } from 'stacks-encoding-native-js'; import { getAssetEventTypeString, parseDbTx } from '../controllers/db-controller'; -import { - getETagCacheHandler, - handleChainTipCache, - setETagCacheHeaders, -} from '../controllers/cache-controller'; -import { PgStore } from '../../datastore/pg-store'; +import { handleChainTipCache } from '../controllers/cache-controller'; import { has0xPrefix } from '@hirosystems/api-toolkit'; +import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { Server } from 'node:http'; import { LimitParam, OffsetParam, UnanchoredParamSchema } from '../schemas/params'; import { PaginatedResponse } from '../schemas/util'; -import { TransactionSchema } from '../schemas/entities/transactions'; import { NonFungibleTokenHistoryEventWithTxIdSchema, NonFungibleTokenHistoryEventWithTxMetadataSchema, @@ -36,7 +19,6 @@ import { NonFungibleTokenMintWithTxIdSchema, NonFungibleTokenMintWithTxMetadataSchema, } from '../schemas/entities/tokens'; -import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; export const TokenRoutes: FastifyPluginAsync< Record, @@ -377,33 +359,71 @@ export const TokenRoutes: FastifyPluginAsync< } ); - await Promise.resolve(); -}; - -export function createTokenRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - router.use(express.json()); - - router.get( + fastify.get( '/ft/:token/holders', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_ft_holders', + summary: 'Fungible token holders', + description: + 'Retrieves the list of Fungible Token holders for a given token ID. Specify `stx` for the `token` parameter to get the list of STX holders.', + tags: ['Fungible Tokens'], + params: Type.Object({ + token: Type.String({ + description: 'fungible token identifier', + examples: ['stx', 'SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc::aeUSDC'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.TokenHolders, 'Limit', 'max number of holders to fetch'), + offset: OffsetParam('Offset', 'index of first holder to fetch'), + }), + response: { + 200: Type.Composite([ + Type.Object({ + total_supply: Type.String({ + description: 'The total supply of the token (the sum of all balances)', + examples: ['5817609278457'], + }), + }), + PaginatedResponse( + Type.Object( + { + address: Type.String({ + description: 'Principal of the token holder', + examples: ['SP3G2QZHYDZPJ2FBN2V2MB74T5ZQ6FQK2P5QJ2K6'], + }), + balance: Type.String({ + description: 'The balance of the token held by the address', + examples: ['174823763'], + }), + }, + { title: 'FtHolderEntry' } + ) + ), + ]), + }, + }, + }, + async (req, reply) => { const token = req.params.token; - const limit = getPagingQueryLimit(ResourceType.TokenHolders, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); - const { results, total, totalSupply } = await db.getTokenHolders({ token, limit, offset }); - const response: FungibleTokenHolderList = { + const limit = req.query.limit; + const offset = req.query.offset ?? 0; + const { results, total, totalSupply } = await fastify.db.getTokenHolders({ + token, + limit, + offset, + }); + await reply.send({ limit: limit, offset: offset, total: total, total_supply: totalSupply, results: results, - }; - setETagCacheHeaders(res); - res.status(200).json(response); - }) + }); + } ); - return router; -} + await Promise.resolve(); +}; From a38386e3e829504837d1baac945b5a010ca0f7ca Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 1 Aug 2024 10:32:19 +0200 Subject: [PATCH 07/56] feat: refactor `/extended/v1/contract/*` endpoints to fastify --- src/api/init.ts | 5 +- src/api/routes/contract.ts | 156 +++++++++++++++----- src/api/routes/tokens.ts | 8 +- src/api/schemas/entities/smart-contracts.ts | 19 +++ src/errors.ts | 8 + 5 files changed, 152 insertions(+), 44 deletions(-) create mode 100644 src/api/schemas/entities/smart-contracts.ts diff --git a/src/api/init.ts b/src/api/init.ts index 0b38c530c..ad98866b5 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -7,7 +7,7 @@ import * as cors from 'cors'; import { TxRoutes } from './routes/tx'; import { createDebugRouter } from './routes/debug'; import { InfoRoutes } from './routes/info'; -import { createContractRouter } from './routes/contract'; +import { ContractRoutes } from './routes/contract'; import { createCoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; import { createBlockRouter } from './routes/block'; import { createFaucetRouter } from './routes/faucets'; @@ -212,7 +212,6 @@ export async function startApiServer(opts: { v1.use('/block', createBlockRouter(datastore)); v1.use('/microblock', createMicroblockRouter(datastore)); v1.use('/burnchain', createBurnchainRouter(datastore)); - v1.use('/contract', createContractRouter(datastore)); v1.use('/address', createAddressRouter(datastore, chainId)); v1.use('/search', createSearchRouter(datastore)); v1.use('/debug', createDebugRouter(datastore)); @@ -420,6 +419,7 @@ export async function startApiServer(opts: { await fastify.register(StxSupplyRoutes, { prefix: '/extended/v1/stx_supply' }); await fastify.register(InfoRoutes, { prefix: '/extended/v1/info' }); await fastify.register(TokenRoutes, { prefix: '/extended/v1/tokens' }); + await fastify.register(ContractRoutes, { prefix: '/extended/v1/contract' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -435,6 +435,7 @@ export async function startApiServer(opts: { '^/extended/v1/stx_supply', '^/extended/v1/info', '^/extended/v1/tokens', + '^/extended/v1/contract', // '^/extended/v1/TODO', // '^/extended/v1/TODO', // '^/extended/v1/TODO', diff --git a/src/api/routes/contract.ts b/src/api/routes/contract.ts index 531511ec0..c83e02876 100644 --- a/src/api/routes/contract.ts +++ b/src/api/routes/contract.ts @@ -1,72 +1,152 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; import { parseDbEvent } from '../controllers/db-controller'; -import { parseTraitAbi } from '../query-helpers'; -import { PgStore } from '../../datastore/pg-store'; +import { handleChainTipCache } from '../controllers/cache-controller'; -export function createContractRouter(db: PgStore): express.Router { - const router = express.Router(); +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam, UnanchoredParamSchema } from '../schemas/params'; +import { InvalidRequestError, InvalidRequestErrorType, NotFoundError } from '../../errors'; +import { ClarityAbi } from '@stacks/transactions'; +import { SmartContractSchema } from '../schemas/entities/smart-contracts'; +import { TransactionEventSchema } from '../schemas/entities/transaction-events'; - router.get( +export const ContractRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/by_trait', - asyncHandler(async (req, res, next) => { - const trait_abi = parseTraitAbi(req, res, next); + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_contracts_by_trait', + summary: 'Get contracts by trait', + description: `Retrieves a list of contracts based on the following traits listed in JSON format - functions, variables, maps, fungible tokens and non-fungible tokens`, + tags: ['Smart Contracts'], + querystring: Type.Object({ + trait_abi: Type.String({ + description: 'JSON abi of the trait.', + }), + limit: LimitParam(ResourceType.Contract, 'Limit', 'max number of contracts fetch'), + offset: OffsetParam('Offset', 'index of first contract event to fetch'), + }), + response: { + 200: Type.Object( + { + limit: Type.Integer({ examples: [20] }), + offset: Type.Integer({ examples: [0] }), + results: Type.Array(SmartContractSchema), + }, + { + title: 'ContractListResponse', + description: 'GET list of contracts', + } + ), + }, + }, + }, + async (req, reply) => { + const trait_abi: ClarityAbi = JSON.parse(req.query.trait_abi); + if (!('functions' in trait_abi)) { + throw new InvalidRequestError(`Invalid 'trait_abi'`, InvalidRequestErrorType.invalid_param); + } const limit = getPagingQueryLimit(ResourceType.Contract, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const smartContracts = await db.getSmartContractByTrait({ + const smartContracts = await fastify.db.getSmartContractByTrait({ trait: trait_abi, limit, offset, }); if (!smartContracts.found) { - res.status(404).json({ error: `cannot find contract for this trait` }); - return; + throw new NotFoundError(`cannot find contract for this trait`); } - const contractResults = smartContracts.result.map(contract => ({ - ...contract, - abi: contract.abi, - })); - res.json({ limit, offset, results: contractResults }); - }) + await reply.send({ limit, offset, results: smartContracts.result }); + } ); - router.get( + fastify.get( '/:contract_id', - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_contract_by_id', + summary: 'Get contract info', + description: 'Retrieves details of a contract with a given `contract_id`', + tags: ['Smart Contracts'], + params: Type.Object({ + contract_id: Type.String({ + description: 'Contract identifier formatted as `.`', + examples: ['SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles'], + }), + }), + querystring: Type.Object({ + unanchored: UnanchoredParamSchema, + }), + response: { + 200: SmartContractSchema, + }, + }, + }, + async (req, reply) => { const { contract_id } = req.params; - const contractQuery = await db.getSmartContract(contract_id); + const contractQuery = await fastify.db.getSmartContract(contract_id); if (!contractQuery.found) { - res.status(404).json({ error: `cannot find contract by ID ${contract_id}` }); - return; + throw new NotFoundError(`cannot find contract by ID`); } - const contractResult = { - ...contractQuery.result, - abi: contractQuery.result.abi, - }; - res.json(contractResult); - }) + await reply.send(contractQuery.result); + } ); - router.get( + fastify.get( '/:contract_id/events', - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_contract_events_by_id', + summary: 'Get contract events', + description: 'Retrieves a list of events that have been triggered by a given `contract_id`', + tags: ['Smart Contracts'], + params: Type.Object({ + contract_id: Type.String({ + description: 'Contract identifier formatted as `.`', + examples: ['SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Contract, 'Limit', 'max number of events to fetch'), + offset: OffsetParam(), + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Object( + { + limit: Type.Integer(), + offset: Type.Integer(), + results: Type.Array(TransactionEventSchema), + }, + { description: 'List of events' } + ), + }, + }, + }, + async (req, reply) => { const { contract_id } = req.params; const limit = getPagingQueryLimit(ResourceType.Contract, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const eventsQuery = await db.getSmartContractEvents({ + const eventsQuery = await fastify.db.getSmartContractEvents({ contractId: contract_id, limit, offset, }); if (!eventsQuery.found) { - res.status(404).json({ error: `cannot find events for contract by ID: ${contract_id}` }); - return; + throw new NotFoundError(`cannot find events for contract by ID}`); } const parsedEvents = eventsQuery.result.map(event => parseDbEvent(event)); - res.json({ limit, offset, results: parsedEvents }); - }) + await reply.send({ limit, offset, results: parsedEvents }); + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/tokens.ts b/src/api/routes/tokens.ts index faf57d317..fdad63d50 100644 --- a/src/api/routes/tokens.ts +++ b/src/api/routes/tokens.ts @@ -162,7 +162,7 @@ export const TokenRoutes: FastifyPluginAsync< }), limit: LimitParam(ResourceType.Token, 'Limit', 'max number of events to fetch'), offset: OffsetParam('Offset', 'index of first event to fetch'), - unachored: UnanchoredParamSchema, + unanchored: UnanchoredParamSchema, tx_metadata: Type.Boolean({ default: false, description: @@ -204,7 +204,7 @@ export const TokenRoutes: FastifyPluginAsync< const limit = getPagingQueryLimit(ResourceType.Token, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const includeUnanchored = req.query.unachored ?? false; + const includeUnanchored = req.query.unanchored ?? false; const includeTxMetadata = req.query.tx_metadata ?? false; await fastify.db @@ -273,7 +273,7 @@ export const TokenRoutes: FastifyPluginAsync< }), limit: LimitParam(ResourceType.Token, 'Limit', 'max number of events to fetch'), offset: OffsetParam('Offset', 'index of first event to fetch'), - unachored: UnanchoredParamSchema, + unanchored: UnanchoredParamSchema, tx_metadata: Type.Boolean({ default: false, description: @@ -308,7 +308,7 @@ export const TokenRoutes: FastifyPluginAsync< const limit = getPagingQueryLimit(ResourceType.Token, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const includeUnanchored = req.query.unachored ?? false; + const includeUnanchored = req.query.unanchored ?? false; const includeTxMetadata = req.query.tx_metadata ?? false; await fastify.db diff --git a/src/api/schemas/entities/smart-contracts.ts b/src/api/schemas/entities/smart-contracts.ts new file mode 100644 index 000000000..a7c393e00 --- /dev/null +++ b/src/api/schemas/entities/smart-contracts.ts @@ -0,0 +1,19 @@ +import { Static, Type } from '@sinclair/typebox'; +import { Nullable } from '../util'; + +export const SmartContractSchema = Type.Object( + { + tx_id: Type.String(), + canonical: Type.Boolean(), + contract_id: Type.String(), + block_height: Type.Integer(), + clarity_version: Nullable(Type.Integer()), + source_code: Type.String(), + abi: Nullable(Type.String()), + }, + { + title: 'SmartContract', + description: 'A Smart Contract Detail', + } +); +export type SmartContract = Static; diff --git a/src/errors.ts b/src/errors.ts index a63e6353e..46a083505 100644 --- a/src/errors.ts +++ b/src/errors.ts @@ -31,3 +31,11 @@ export class BtcFaucetConfigError extends Error { this.name = this.constructor.name; } } + +export class NotFoundError extends Error { + status: number; + constructor(msg: string = 'Not found', status: number = 404) { + super(msg); + this.status = status; + } +} From c3cb5a19bbd6e8111c1e305c22b204663416c41a Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 1 Aug 2024 11:15:27 +0200 Subject: [PATCH 08/56] feat: refactor `/extended/v1/fee_rate/*` endpoints to fastify --- src/api/init.ts | 9 ++---- src/api/routes/fee-rate.ts | 59 +++++++++++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index ad98866b5..44689ace6 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -32,7 +32,7 @@ import { createMiddleware as createPrometheusMiddleware } from '@promster/expres import { createMicroblockRouter } from './routes/microblock'; import { StatusRoutes } from './routes/status'; import { TokenRoutes } from './routes/tokens'; -import { createFeeRateRouter } from './routes/fee-rate'; +import { FeeRateRoutes } from './routes/fee-rate'; import { setResponseNonCacheable } from './controllers/cache-controller'; import * as path from 'path'; @@ -218,7 +218,6 @@ export async function startApiServer(opts: { v1.use('/status', (req, res) => res.redirect(`${req.baseUrl.replace(/v1\/status/, '')}${getReqQuery(req)}`) ); - v1.use('/fee_rate', createFeeRateRouter(datastore)); // These could be defined in one route but a url reporting library breaks with regex in middleware paths v1.use('/pox2', createPoxEventsRouter(datastore, 'pox2')); @@ -420,6 +419,7 @@ export async function startApiServer(opts: { await fastify.register(InfoRoutes, { prefix: '/extended/v1/info' }); await fastify.register(TokenRoutes, { prefix: '/extended/v1/tokens' }); await fastify.register(ContractRoutes, { prefix: '/extended/v1/contract' }); + await fastify.register(FeeRateRoutes, { prefix: '/extended/v1/fee_rate' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -436,10 +436,7 @@ export async function startApiServer(opts: { '^/extended/v1/info', '^/extended/v1/tokens', '^/extended/v1/contract', - // '^/extended/v1/TODO', - // '^/extended/v1/TODO', - // '^/extended/v1/TODO', - // '^/extended/v1/TODO', + '^/extended/v1/fee_rate', ].join('|'), 'i' ); diff --git a/src/api/routes/fee-rate.ts b/src/api/routes/fee-rate.ts index fc5f5577d..250f14270 100644 --- a/src/api/routes/fee-rate.ts +++ b/src/api/routes/fee-rate.ts @@ -1,19 +1,52 @@ -import * as express from 'express'; import { FeeRate } from '@stacks/stacks-blockchain-api-types'; -import { PgStore } from '../../datastore/pg-store'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; export const FEE_RATE = 400; -export function createFeeRateRouter(_: PgStore): express.Router { - const router = express.Router(); +export const FeeRateRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.post( + '/', + { + schema: { + operationId: 'fetch_fee_rate', + summary: 'Fetch fee rate', + description: `**NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](/api/get-approximate-fees-for-a-given-transaction). - router.post('/', (req, res) => { - //validate and use req.body.transaction when we want to use it - const response: FeeRate = { - fee_rate: FEE_RATE, - }; - res.json(response); - }); + Retrieves estimated fee rate.`, + tags: ['Fees'], + body: Type.Object( + { + transaction: Type.String({ description: 'A serialized transaction' }), + }, + { title: 'FeeRateRequest', description: 'Request to fetch fee for a transaction' } + ), + response: { + 200: Type.Object( + { + fee_rate: Type.Integer(), + }, + { + title: 'FeeRate', + description: 'Get fee rate information.', + } + ), + }, + }, + }, + async (_req, reply) => { + //validate and use req.body.transaction when we want to use it + const response: FeeRate = { + fee_rate: FEE_RATE, + }; + await reply.send(response); + } + ); - return router; -} + await Promise.resolve(); +}; From 7687bca07d4d4650212a3c26539c796f90e3ac2c Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 1 Aug 2024 11:44:01 +0200 Subject: [PATCH 09/56] feat: refactor `/extended/v1/microblock/*` endpoints to fastify --- src/api/init.ts | 8 +- src/api/routes/microblock.ts | 129 ++++++++++++++++++------- src/api/schemas/entities/microblock.ts | 56 +++++++++++ 3 files changed, 151 insertions(+), 42 deletions(-) create mode 100644 src/api/schemas/entities/microblock.ts diff --git a/src/api/init.ts b/src/api/init.ts index 44689ace6..91afcc6bc 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -29,7 +29,7 @@ import { createBnsAddressesRouter } from './routes/bns/addresses'; import * as pathToRegex from 'path-to-regexp'; import * as expressListEndpoints from 'express-list-endpoints'; import { createMiddleware as createPrometheusMiddleware } from '@promster/express'; -import { createMicroblockRouter } from './routes/microblock'; +import { MicroblockRoutes } from './routes/microblock'; import { StatusRoutes } from './routes/status'; import { TokenRoutes } from './routes/tokens'; import { FeeRateRoutes } from './routes/fee-rate'; @@ -210,14 +210,10 @@ export async function startApiServer(opts: { (() => { const v1 = express.Router(); v1.use('/block', createBlockRouter(datastore)); - v1.use('/microblock', createMicroblockRouter(datastore)); v1.use('/burnchain', createBurnchainRouter(datastore)); v1.use('/address', createAddressRouter(datastore, chainId)); v1.use('/search', createSearchRouter(datastore)); v1.use('/debug', createDebugRouter(datastore)); - v1.use('/status', (req, res) => - res.redirect(`${req.baseUrl.replace(/v1\/status/, '')}${getReqQuery(req)}`) - ); // These could be defined in one route but a url reporting library breaks with regex in middleware paths v1.use('/pox2', createPoxEventsRouter(datastore, 'pox2')); @@ -420,6 +416,7 @@ export async function startApiServer(opts: { await fastify.register(TokenRoutes, { prefix: '/extended/v1/tokens' }); await fastify.register(ContractRoutes, { prefix: '/extended/v1/contract' }); await fastify.register(FeeRateRoutes, { prefix: '/extended/v1/fee_rate' }); + await fastify.register(MicroblockRoutes, { prefix: '/extended/v1/microblock' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -437,6 +434,7 @@ export async function startApiServer(opts: { '^/extended/v1/tokens', '^/extended/v1/contract', '^/extended/v1/fee_rate', + '^/extended/v1/microblock', ].join('|'), 'i' ); diff --git a/src/api/routes/microblock.ts b/src/api/routes/microblock.ts index 6d2a5a4f6..ed0d1febe 100644 --- a/src/api/routes/microblock.ts +++ b/src/api/routes/microblock.ts @@ -1,10 +1,3 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; -import { - Microblock, - MicroblockListResponse, - UnanchoredTransactionListResponse, -} from '@stacks/stacks-blockchain-api-types'; import { getMicroblockFromDataStore, getMicroblocksFromDataStore, @@ -12,64 +5,126 @@ import { } from '../controllers/db-controller'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; import { validateRequestHexInput } from '../query-helpers'; -import { PgStore } from '../../datastore/pg-store'; import { has0xPrefix } from '@hirosystems/api-toolkit'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { handleChainTipCache } from '../controllers/cache-controller'; +import { LimitParam, OffsetParam } from '../schemas/params'; +import { PaginatedResponse } from '../schemas/util'; +import { MicroblockSchema } from '../schemas/entities/microblock'; +import { NotFoundError } from 'src/errors'; +import { TransactionSchema } from '../schemas/entities/transactions'; -export function createMicroblockRouter(db: PgStore): express.Router { - const router = express.Router(); - - router.get( +export const MicroblockRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/', - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_microblock_list', + summary: 'Get recent microblocks', + description: `Retrieves a list of microblocks. + + If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates.`, + tags: ['Microblocks'], + querystring: Type.Object({ + limit: LimitParam(ResourceType.Microblock, 'Limit', 'Max number of microblocks to fetch'), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(MicroblockSchema, { + title: 'MicroblockListResponse', + description: 'GET request that returns microblocks', + }), + }, + }, + }, + async (req, reply) => { const limit = getPagingQueryLimit(ResourceType.Microblock, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const query = await getMicroblocksFromDataStore({ db, offset, limit }); - const response: MicroblockListResponse = { + const query = await getMicroblocksFromDataStore({ db: fastify.db, offset, limit }); + const response = { limit, offset, total: query.total, results: query.result, }; - // TODO: block schema validation - res.json(response); - }) + await reply.send(response); + } ); - router.get( + fastify.get( '/:hash', - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_microblock_by_hash', + summary: 'Get microblock', + description: 'Retrieves a specific microblock by `hash`', + tags: ['Microblocks'], + params: Type.Object({ + hash: Type.String({ + description: 'Hash of the microblock', + examples: ['0x3bfcdf84b3012adb544cf0f6df4835f93418c2269a3881885e27b3d58eb82d47'], + }), + }), + response: { + 200: MicroblockSchema, + }, + }, + }, + async (req, reply) => { const { hash } = req.params; if (!has0xPrefix(hash)) { - return res.redirect('/extended/v1/microblock/0x' + hash); + return reply.redirect('/extended/v1/microblock/0x' + hash); } validateRequestHexInput(hash); - const block = await getMicroblockFromDataStore({ db, microblockHash: hash }); + const block = await getMicroblockFromDataStore({ db: fastify.db, microblockHash: hash }); if (!block.found) { - res.status(404).json({ error: `cannot find microblock by hash ${hash}` }); - return; + throw new NotFoundError(`cannot find microblock by hash`); } - const response: Microblock = block.result; - // TODO: block schema validation - res.json(response); - }) + const response = block.result; + await reply.send(response); + } ); - router.get( + fastify.get( '/unanchored/txs', - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_unanchored_txs', + summary: 'Get the list of current transactions that belong to unanchored microblocks', + description: + 'Retrieves transactions that have been streamed in microblocks but not yet accepted or rejected in an anchor block', + tags: ['Microblocks'], + response: { + 200: Type.Object({ + total: Type.Integer(), + results: Type.Array(TransactionSchema), + }), + }, + }, + }, + async (_req, reply) => { // TODO: implement pagination for /unanchored/txs - const txs = await getUnanchoredTxsFromDataStore(db); - const response: UnanchoredTransactionListResponse = { + const txs = await getUnanchoredTxsFromDataStore(fastify.db); + const response = { total: txs.length, - results: txs as import('@stacks/stacks-blockchain-api-types').Transaction[], + results: txs, }; - res.json(response); - }) + await reply.send(response); + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/schemas/entities/microblock.ts b/src/api/schemas/entities/microblock.ts new file mode 100644 index 000000000..4b6d7deb9 --- /dev/null +++ b/src/api/schemas/entities/microblock.ts @@ -0,0 +1,56 @@ +import { Static, Type } from '@sinclair/typebox'; +import { Nullable } from '../util'; + +export const MicroblockSchema = Type.Object( + { + canonical: Type.Boolean({ + description: 'Set to `true` if the microblock corresponds to the canonical chain tip.', + }), + microblock_canonical: Type.Boolean({ + description: + 'Set to `true` if the microblock was not orphaned in a following anchor block. Defaults to `true` if the following anchor block has not yet been created.', + }), + microblock_hash: Type.String({ + description: 'The SHA512/256 hash of this microblock.', + }), + microblock_sequence: Type.Integer({ + description: 'A hint to describe how to order a set of microblocks. Starts at 0.', + }), + microblock_parent_hash: Type.String({ + description: 'The SHA512/256 hash of the previous signed microblock in this stream.', + }), + block_height: Type.Integer({ + description: 'The anchor block height that confirmed this microblock.', + }), + parent_block_height: Type.Integer({ + description: 'The height of the anchor block that preceded this microblock.', + }), + parent_block_hash: Type.String({ + description: 'The hash of the anchor block that preceded this microblock.', + }), + parent_burn_block_hash: Type.String({ + description: 'The hash of the Bitcoin block that preceded this microblock.', + }), + parent_burn_block_time: Type.Integer({ + description: 'The block timestamp of the Bitcoin block that preceded this microblock.', + }), + parent_burn_block_time_iso: Type.String({ + description: + 'The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the bitcoin block that preceded this microblock.', + }), + parent_burn_block_height: Type.Integer({ + description: 'The height of the Bitcoin block that preceded this microblock.', + }), + block_hash: Nullable( + Type.String({ + description: + 'The hash of the anchor block that confirmed this microblock. This wil be empty for unanchored microblocks', + }) + ), + txs: Type.Array(Type.String(), { + description: 'List of transactions included in the microblock', + }), + }, + { title: 'Microblock', description: 'A microblock' } +); +export type Microblock = Static; From a6a207995dba85554e8222a1616060473fbf7374 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 1 Aug 2024 12:57:47 +0200 Subject: [PATCH 10/56] feat: refactor `/extended/v1/block/*` endpoints to fastify --- src/api/controllers/db-controller.ts | 4 +- src/api/init.ts | 5 +- src/api/routes/block.ts | 252 ++++++++++++------ src/api/routes/fee-rate.ts | 1 + .../routes/ws/channels/socket-io-channel.ts | 15 +- src/api/routes/ws/channels/ws-rpc-channel.ts | 9 +- src/api/routes/ws/web-socket-channel.ts | 8 +- src/api/routes/ws/web-socket-transmitter.ts | 10 +- src/api/schemas/entities/block.ts | 82 ++++++ 9 files changed, 282 insertions(+), 104 deletions(-) create mode 100644 src/api/schemas/entities/block.ts diff --git a/src/api/controllers/db-controller.ts b/src/api/controllers/db-controller.ts index 3ddc79738..48364aacd 100644 --- a/src/api/controllers/db-controller.ts +++ b/src/api/controllers/db-controller.ts @@ -12,8 +12,6 @@ import { } from 'stacks-encoding-native-js'; import { - Block, - Microblock, RosettaBlock, RosettaParentBlockIdentifier, RosettaTransaction, @@ -70,6 +68,8 @@ import { StxLockTransactionEvent, TransactionEvent, } from '../schemas/entities/transaction-events'; +import { Microblock } from '../schemas/entities/microblock'; +import { Block } from '../schemas/entities/block'; export const TransactionTypes = [ 'contract_call', diff --git a/src/api/init.ts b/src/api/init.ts index 91afcc6bc..096b68c73 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -9,7 +9,7 @@ import { createDebugRouter } from './routes/debug'; import { InfoRoutes } from './routes/info'; import { ContractRoutes } from './routes/contract'; import { createCoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; -import { createBlockRouter } from './routes/block'; +import { BlockRoutes } from './routes/block'; import { createFaucetRouter } from './routes/faucets'; import { createAddressRouter } from './routes/address'; import { createSearchRouter } from './routes/search'; @@ -209,7 +209,6 @@ export async function startApiServer(opts: { '/v1', (() => { const v1 = express.Router(); - v1.use('/block', createBlockRouter(datastore)); v1.use('/burnchain', createBurnchainRouter(datastore)); v1.use('/address', createAddressRouter(datastore, chainId)); v1.use('/search', createSearchRouter(datastore)); @@ -417,6 +416,7 @@ export async function startApiServer(opts: { await fastify.register(ContractRoutes, { prefix: '/extended/v1/contract' }); await fastify.register(FeeRateRoutes, { prefix: '/extended/v1/fee_rate' }); await fastify.register(MicroblockRoutes, { prefix: '/extended/v1/microblock' }); + await fastify.register(BlockRoutes, { prefix: '/extended/v1/block' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -435,6 +435,7 @@ export async function startApiServer(opts: { '^/extended/v1/contract', '^/extended/v1/fee_rate', '^/extended/v1/microblock', + '^/extended/v1/block', ].join('|'), 'i' ); diff --git a/src/api/routes/block.ts b/src/api/routes/block.ts index b60399098..00837abbd 100644 --- a/src/api/routes/block.ts +++ b/src/api/routes/block.ts @@ -1,118 +1,208 @@ -import * as express from 'express'; -import { BlockListResponse } from '@stacks/stacks-blockchain-api-types'; import { getBlockFromDataStore, getBlocksWithMetadata } from '../controllers/db-controller'; -import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; +import { NotFoundError } from '../../errors'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; -import { getBlockHeightPathParam, validateRequestHexInput } from '../query-helpers'; -import { getETagCacheHandler, setETagCacheHeaders } from '../controllers/cache-controller'; -import { asyncHandler } from '../async-handler'; -import { PgStore } from '../../datastore/pg-store'; +import { validateRequestHexInput } from '../query-helpers'; +import { handleChainTipCache } from '../controllers/cache-controller'; import { has0xPrefix } from '@hirosystems/api-toolkit'; -export function createBlockRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - router.get( +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam } from '../schemas/params'; +import { PaginatedResponse } from '../schemas/util'; +import { BlockSchema } from '../schemas/entities/block'; + +export const BlockRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_block_list', + summary: 'Get recent blocks', + description: `**NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). + + Retrieves a list of recently mined blocks + + If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates.`, + tags: ['Blocks'], + querystring: Type.Object({ + limit: LimitParam(ResourceType.Block, 'Limit', 'max number of blocks to fetch'), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(BlockSchema, { + title: 'BlockListResponse', + description: 'GET request that returns blocks', + }), + }, + }, + }, + async (req, reply) => { const limit = getPagingQueryLimit(ResourceType.Block, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const { results, total } = await getBlocksWithMetadata({ offset, limit, db }); - setETagCacheHeaders(res); - // TODO: block schema validation - const response: BlockListResponse = { limit, offset, total, results }; - res.json(response); - }) + const { results, total } = await getBlocksWithMetadata({ offset, limit, db: fastify.db }); + const response = { limit, offset, total, results }; + await reply.send(response); + } ); - router.get( + fastify.get( '/by_height/:height', - cacheHandler, - asyncHandler(async (req, res, next) => { - const height = getBlockHeightPathParam(req, res, next); - const block = await getBlockFromDataStore({ blockIdentifer: { height }, db }); + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_block_by_height', + summary: 'Get block by height', + description: `**NOTE:** This endpoint is deprecated in favor of [Get block](/api/get-block). + + Retrieves block details of a specific block at a given block height`, + tags: ['Blocks'], + params: Type.Object({ + height: Type.Integer({ + description: 'Height of the block', + minimum: 0, + examples: [10000], + }), + }), + response: { + 200: BlockSchema, + }, + }, + }, + async (req, reply) => { + const height = req.params.height; + const block = await getBlockFromDataStore({ blockIdentifer: { height }, db: fastify.db }); if (!block.found) { - res.status(404).json({ error: `cannot find block by height ${height}` }); - return; + throw new NotFoundError(`cannot find block by height`); } - setETagCacheHeaders(res); - // TODO: block schema validation - res.json(block.result); - }) + await reply.send(block.result); + } ); - router.get( - '/by_burn_block_height/:burnBlockHeight', - cacheHandler, - asyncHandler(async (req, res) => { - const burnBlockHeight = parseInt(req.params['burnBlockHeight'], 10); - if (!Number.isInteger(burnBlockHeight)) { - throw new InvalidRequestError( - `burnchain height is not a valid integer: ${req.params['burnBlockHeight']}`, - InvalidRequestErrorType.invalid_param - ); - } - if (burnBlockHeight < 1) { - throw new InvalidRequestError( - `burnchain height is not a positive integer: ${burnBlockHeight}`, - InvalidRequestErrorType.invalid_param - ); - } - const block = await getBlockFromDataStore({ blockIdentifer: { burnBlockHeight }, db }); + fastify.get( + '/by_burn_block_height/:burn_block_height', + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_block_by_burn_block_height', + summary: 'Get block by burnchain height', + description: `**NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). + + Retrieves block details of a specific block for a given burn chain height`, + tags: ['Blocks'], + params: Type.Object({ + burn_block_height: Type.Integer({ + description: 'Height of the burn chain block', + minimum: 0, + examples: [744603], + }), + }), + response: { + 200: BlockSchema, + }, + }, + }, + async (req, reply) => { + const burnBlockHeight = req.params.burn_block_height; + const block = await getBlockFromDataStore({ + blockIdentifer: { burnBlockHeight }, + db: fastify.db, + }); if (!block.found) { - res.status(404).json({ error: `cannot find block by height ${burnBlockHeight}` }); - return; + throw new NotFoundError(`cannot find block by height`); } - setETagCacheHeaders(res); - // TODO: block schema validation - res.json(block.result); - }) + await reply.send(block.result); + } ); - router.get( + fastify.get( '/:hash', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_block_by_hash', + summary: 'Get block by hash', + description: `**NOTE:** This endpoint is deprecated in favor of [Get block](/api/get-block). + + Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block ('get_block_list' API) to get your block details.`, + tags: ['Blocks'], + params: Type.Object({ + hash: Type.String({ + description: 'Hash of the block', + examples: ['0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79'], + }), + }), + response: { + 200: BlockSchema, + }, + }, + }, + async (req, reply) => { const { hash } = req.params; if (!has0xPrefix(hash)) { - return res.redirect('/extended/v1/block/0x' + hash); + return reply.redirect('/extended/v1/block/0x' + hash); } validateRequestHexInput(hash); - const block = await getBlockFromDataStore({ blockIdentifer: { hash }, db }); + const block = await getBlockFromDataStore({ blockIdentifer: { hash }, db: fastify.db }); if (!block.found) { - res.status(404).json({ error: `cannot find block by hash ${hash}` }); - return; + throw new NotFoundError(`cannot find block by hash`); } - setETagCacheHeaders(res); - // TODO: block schema validation - res.json(block.result); - }) + await reply.send(block.result); + } ); - router.get( - '/by_burn_block_hash/:burnBlockHash', - cacheHandler, - asyncHandler(async (req, res) => { - const { burnBlockHash } = req.params; + fastify.get( + '/by_burn_block_hash/:burn_block_hash', + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_block_by_burn_block_hash', + summary: 'Get block by burnchain block hash', + description: `**NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). + + Retrieves block details of a specific block for a given burnchain block hash`, + tags: ['Blocks'], + params: Type.Object({ + burn_block_hash: Type.String({ + description: 'Hash of the burnchain block', + examples: ['0x00000000000000000002bba732926cf68b6eda3e2cdbc2a85af79f10efeeeb10'], + }), + }), + response: { + 200: BlockSchema, + }, + }, + }, + async (req, reply) => { + const { burn_block_hash } = req.params; - if (!has0xPrefix(burnBlockHash)) { - return res.redirect('/extended/v1/block/by_burn_block_hash/0x' + burnBlockHash); + if (!has0xPrefix(burn_block_hash)) { + return reply.redirect('/extended/v1/block/by_burn_block_hash/0x' + burn_block_hash); } - const block = await getBlockFromDataStore({ blockIdentifer: { burnBlockHash }, db }); + const block = await getBlockFromDataStore({ + blockIdentifer: { burnBlockHash: burn_block_hash }, + db: fastify.db, + }); if (!block.found) { - res.status(404).json({ error: `cannot find block by burn block hash ${burnBlockHash}` }); - return; + throw new NotFoundError(`cannot find block by burn block hash`); } - setETagCacheHeaders(res); - // TODO: block schema validation - res.json(block.result); - }) + await reply.send(block.result); + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/fee-rate.ts b/src/api/routes/fee-rate.ts index 250f14270..f87402312 100644 --- a/src/api/routes/fee-rate.ts +++ b/src/api/routes/fee-rate.ts @@ -14,6 +14,7 @@ export const FeeRateRoutes: FastifyPluginAsync< '/', { schema: { + deprecated: true, operationId: 'fetch_fee_rate', summary: 'Fetch fee rate', description: `**NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](/api/get-approximate-fees-for-a-given-transaction). diff --git a/src/api/routes/ws/channels/socket-io-channel.ts b/src/api/routes/ws/channels/socket-io-channel.ts index de9b459d7..f0088561d 100644 --- a/src/api/routes/ws/channels/socket-io-channel.ts +++ b/src/api/routes/ws/channels/socket-io-channel.ts @@ -187,20 +187,29 @@ export class SocketIOChannel extends WebSocketChannel { case 'microblock': { const [microblock] = args as ListenerType; this.prometheus?.sendEvent('microblock'); - this.io?.to('microblock').emit('microblock', microblock); + this.io + ?.to('microblock') + .emit( + 'microblock', + microblock as import('@stacks/stacks-blockchain-api-types').Microblock + ); break; } case 'mempoolTransaction': { const [tx] = args as ListenerType; this.prometheus?.sendEvent('mempool'); - this.io?.to('mempool').emit('mempool', tx); + this.io + ?.to('mempool') + .emit('mempool', tx as import('@stacks/stacks-blockchain-api-types').MempoolTransaction); break; } case 'transaction': { const [tx] = args as ListenerType; this.prometheus?.sendEvent('transaction'); const topic: TransactionTopic = `transaction:${tx.tx_id}`; - this.io?.to(topic).emit(topic, tx); + this.io + ?.to(topic) + .emit(topic, tx as import('@stacks/stacks-blockchain-api-types').Transaction); break; } case 'nftEvent': { diff --git a/src/api/routes/ws/channels/ws-rpc-channel.ts b/src/api/routes/ws/channels/ws-rpc-channel.ts index f26aa71ad..d0881363b 100644 --- a/src/api/routes/ws/channels/ws-rpc-channel.ts +++ b/src/api/routes/ws/channels/ws-rpc-channel.ts @@ -25,10 +25,6 @@ import { RpcBlockSubscriptionParams, RpcMicroblockSubscriptionParams, RpcMempoolSubscriptionParams, - Block, - Microblock, - MempoolTransaction, - Transaction, AddressTransactionWithTransfers, AddressStxBalanceResponse, RpcNftEventSubscriptionParams, @@ -40,6 +36,11 @@ import { getWsMessageTimeoutMs, getWsPingIntervalMs } from '../web-socket-transm import { logger } from '../../../../logger'; import { isProdEnv, resolveOrTimeout } from '@hirosystems/api-toolkit'; +import { Transaction } from '../../../schemas/entities/transactions'; +import { MempoolTransaction } from '../../..//schemas/entities/mempool-transactions'; +import { Block } from '../../..//schemas/entities/block'; +import { Microblock } from '../../..//schemas/entities/microblock'; + type Subscription = | RpcTxUpdateSubscriptionParams | RpcAddressTxSubscriptionParams diff --git a/src/api/routes/ws/web-socket-channel.ts b/src/api/routes/ws/web-socket-channel.ts index 79a07ce40..65c33ee9a 100644 --- a/src/api/routes/ws/web-socket-channel.ts +++ b/src/api/routes/ws/web-socket-channel.ts @@ -2,13 +2,13 @@ import * as http from 'http'; import { AddressStxBalanceResponse, AddressTransactionWithTransfers, - Block, - MempoolTransaction, - Microblock, NftEvent, - Transaction, } from 'docs/generated'; import { WebSocketPrometheus } from './web-socket-prometheus'; +import { Block } from '../../schemas/entities/block'; +import { Microblock } from '../../schemas/entities/microblock'; +import { MempoolTransaction } from '../../schemas/entities/mempool-transactions'; +import { Transaction } from '../../schemas/entities/transactions'; /** * Topics that external API users may subscribe to when looking for real time updates. diff --git a/src/api/routes/ws/web-socket-transmitter.ts b/src/api/routes/ws/web-socket-transmitter.ts index e2d1df4fa..0c23d32e5 100644 --- a/src/api/routes/ws/web-socket-transmitter.ts +++ b/src/api/routes/ws/web-socket-transmitter.ts @@ -154,10 +154,7 @@ export class WebSocketTransmitter { includeUnanchored: true, }); if (mempoolTxs.length > 0) { - await this.send( - 'mempoolTransaction', - mempoolTxs[0] as import('@stacks/stacks-blockchain-api-types').MempoolTransaction - ); + await this.send('mempoolTransaction', mempoolTxs[0]); } } catch (error) { logger.error(error); @@ -186,10 +183,7 @@ export class WebSocketTransmitter { } }); if (result) { - await this.send( - 'transaction', - result as import('@stacks/stacks-blockchain-api-types').Transaction - ); + await this.send('transaction', result); } } catch (error) { logger.error(error); diff --git a/src/api/schemas/entities/block.ts b/src/api/schemas/entities/block.ts new file mode 100644 index 000000000..23d541a7b --- /dev/null +++ b/src/api/schemas/entities/block.ts @@ -0,0 +1,82 @@ +import { Static, Type } from '@sinclair/typebox'; + +export const BlockSchema = Type.Object( + { + canonical: Type.Boolean({ + description: 'Set to `true` if block corresponds to the canonical chain tip', + }), + height: Type.Integer({ + description: 'Height of the block', + }), + hash: Type.String({ + description: 'Hash representing the block', + }), + block_time: Type.Number({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + block_time_iso: Type.String({ + description: 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.', + }), + index_block_hash: Type.String({ + description: + 'The only hash that can uniquely identify an anchored block or an unconfirmed state trie', + }), + parent_block_hash: Type.String({ + description: 'Hash of the parent block', + }), + burn_block_time: Type.Number({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + burn_block_time_iso: Type.String({ + description: 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.', + }), + burn_block_hash: Type.String({ + description: 'Hash of the anchor chain block', + }), + burn_block_height: Type.Integer({ + description: 'Height of the anchor chain block', + }), + miner_txid: Type.String({ + description: 'Anchor chain transaction ID', + }), + execution_cost_read_count: Type.Integer({ + description: 'Execution cost read count.', + }), + execution_cost_read_length: Type.Integer({ + description: 'Execution cost read length.', + }), + execution_cost_runtime: Type.Integer({ + description: 'Execution cost runtime.', + }), + execution_cost_write_count: Type.Integer({ + description: 'Execution cost write count.', + }), + execution_cost_write_length: Type.Integer({ + description: 'Execution cost write length.', + }), + txs: Type.Array(Type.String({ description: 'Transaction ID' }), { + description: 'List of transactions included in the block', + }), + parent_microblock_hash: Type.String({ + description: + 'The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.', + }), + parent_microblock_sequence: Type.Integer({ + description: + 'The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.', + }), + microblocks_accepted: Type.Array(Type.String({ description: 'Microblock hash' }), { + description: + 'List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list.', + }), + microblocks_streamed: Type.Array(Type.String({ description: 'Microblock hash' }), { + description: + "List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list.", + }), + microblock_tx_count: Type.Record(Type.String(), Type.Integer(), { + description: 'List of txs counts in each accepted microblock', + }), + }, + { title: 'Block', description: 'A block' } +); +export type Block = Static; From bdeee2fd9d35a5dc7cd9b0f9133539c12cdb5888 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 1 Aug 2024 13:38:56 +0200 Subject: [PATCH 11/56] feat: refactor `/extended/v1/burnchain/*` endpoints to fastify --- src/api/init.ts | 5 +- src/api/routes/burnchain.ts | 226 +++++++++++++----- src/api/schemas/entities/burnchain-rewards.ts | 75 ++++++ 3 files changed, 246 insertions(+), 60 deletions(-) create mode 100644 src/api/schemas/entities/burnchain-rewards.ts diff --git a/src/api/init.ts b/src/api/init.ts index 096b68c73..bf108f1d7 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -21,7 +21,7 @@ import { createRosettaAccountRouter } from './routes/rosetta/account'; import { createRosettaConstructionRouter } from './routes/rosetta/construction'; import { ChainID, apiDocumentationUrl, getChainIDNetwork } from '../helpers'; import { InvalidRequestError } from '../errors'; -import { createBurnchainRouter } from './routes/burnchain'; +import { BurnchainRoutes } from './routes/burnchain'; import { createBnsNamespacesRouter } from './routes/bns/namespaces'; import { createBnsPriceRouter } from './routes/bns/pricing'; import { createBnsNamesRouter } from './routes/bns/names'; @@ -209,7 +209,6 @@ export async function startApiServer(opts: { '/v1', (() => { const v1 = express.Router(); - v1.use('/burnchain', createBurnchainRouter(datastore)); v1.use('/address', createAddressRouter(datastore, chainId)); v1.use('/search', createSearchRouter(datastore)); v1.use('/debug', createDebugRouter(datastore)); @@ -417,6 +416,7 @@ export async function startApiServer(opts: { await fastify.register(FeeRateRoutes, { prefix: '/extended/v1/fee_rate' }); await fastify.register(MicroblockRoutes, { prefix: '/extended/v1/microblock' }); await fastify.register(BlockRoutes, { prefix: '/extended/v1/block' }); + await fastify.register(BurnchainRoutes, { prefix: '/extended/v1/burnchain' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -436,6 +436,7 @@ export async function startApiServer(opts: { '^/extended/v1/fee_rate', '^/extended/v1/microblock', '^/extended/v1/block', + '^/extended/v1/burnchain', ].join('|'), 'i' ); diff --git a/src/api/routes/burnchain.ts b/src/api/routes/burnchain.ts index 668af7b4a..c4168a42e 100644 --- a/src/api/routes/burnchain.ts +++ b/src/api/routes/burnchain.ts @@ -1,28 +1,50 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; +import { isValidBitcoinAddress, tryConvertC32ToBtc } from '../../helpers'; +import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; +import { ResourceType } from '../pagination'; + +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam } from '../schemas/params'; +import { PaginatedResponse } from '../schemas/util'; import { BurnchainReward, - BurnchainRewardListResponse, + BurnchainRewardSchema, BurnchainRewardSlotHolder, - BurnchainRewardSlotHolderListResponse, + BurnchainRewardSlotHolderSchema, BurnchainRewardsTotal, -} from '@stacks/stacks-blockchain-api-types'; - -import { isValidBitcoinAddress, tryConvertC32ToBtc } from '../../helpers'; -import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; -import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; -import { PgStore } from '../../datastore/pg-store'; + BurnchainRewardsTotalSchema, +} from '../schemas/entities/burnchain-rewards'; -export function createBurnchainRouter(db: PgStore): express.Router { - const router = express.Router(); - - router.get( +export const BurnchainRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/reward_slot_holders', - asyncHandler(async (req, res) => { - const limit = getPagingQueryLimit(ResourceType.Burnchain, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); + { + schema: { + operationId: 'get_burnchain_reward_slot_holders', + summary: 'Get recent reward slot holders', + description: `Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments.`, + tags: ['Stacking Rewards'], + querystring: Type.Object({ + limit: LimitParam(ResourceType.Burnchain, 'Limit', 'max number of items to fetch'), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(BurnchainRewardSlotHolderSchema, { + title: 'List of burnchain reward recipients and amounts', + }), + }, + }, + }, + async (req, reply) => { + const limit = req.query.limit; + const offset = req.query.offset ?? 0; - const queryResults = await db.getBurnchainRewardSlotHolders({ offset, limit }); + const queryResults = await fastify.db.getBurnchainRewardSlotHolders({ offset, limit }); const results = queryResults.slotHolders.map(r => { const slotHolder: BurnchainRewardSlotHolder = { canonical: r.canonical, @@ -33,21 +55,44 @@ export function createBurnchainRouter(db: PgStore): express.Router { }; return slotHolder; }); - const response: BurnchainRewardSlotHolderListResponse = { + await reply.send({ limit, offset, total: queryResults.total, results: results, - }; - res.json(response); - }) + }); + } ); - router.get( + fastify.get( '/reward_slot_holders/:address', - asyncHandler(async (req, res) => { - const limit = getPagingQueryLimit(ResourceType.Burnchain, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); + { + schema: { + operationId: 'get_burnchain_reward_slot_holders_by_address', + summary: 'Get recent reward slot holder entries for the given address', + description: `Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments for a given reward slot holder recipient address.`, + tags: ['Stacking Rewards'], + params: Type.Object({ + address: Type.String({ + description: `Reward slot holder recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format`, + examples: ['36hQtSEXBMevo5chpxhfAGiCTSC34QKgda'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Burnchain), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(BurnchainRewardSlotHolderSchema, { + title: 'BurnchainRewardSlotHolderListResponse', + description: 'List of burnchain reward recipients and amounts', + }), + }, + }, + }, + async (req, reply) => { + const limit = req.query.limit; + const offset = req.query.offset ?? 0; const { address } = req.params; let burnchainAddress: string | undefined = undefined; @@ -67,7 +112,7 @@ export function createBurnchainRouter(db: PgStore): express.Router { ); } - const queryResults = await db.getBurnchainRewardSlotHolders({ + const queryResults = await fastify.db.getBurnchainRewardSlotHolders({ offset, limit, burnchainAddress, @@ -82,23 +127,46 @@ export function createBurnchainRouter(db: PgStore): express.Router { }; return slotHolder; }); - const response: BurnchainRewardSlotHolderListResponse = { + await reply.send({ limit, offset, total: queryResults.total, results: results, - }; - res.json(response); - }) + }); + } ); - router.get( + fastify.get( '/rewards', - asyncHandler(async (req, res) => { - const limit = getPagingQueryLimit(ResourceType.Burnchain, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); + { + schema: { + operationId: 'get_burnchain_reward_list', + summary: 'Get recent burnchain reward recipients', + description: `Retrieves a list of recent burnchain (e.g. Bitcoin) reward recipients with the associated amounts and block info`, + tags: ['Stacking Rewards'], + querystring: Type.Object({ + limit: LimitParam(ResourceType.Burnchain), + offset: OffsetParam(), + }), + response: { + 200: Type.Object( + { + limit: Type.Integer(), + offset: Type.Integer(), + results: Type.Array(BurnchainRewardSchema), + }, + { + description: 'List of burnchain reward recipients and amounts', + } + ), + }, + }, + }, + async (req, reply) => { + const limit = req.query.limit; + const offset = req.query.offset ?? 0; - const queryResults = await db.getBurnchainRewards({ offset, limit }); + const queryResults = await fastify.db.getBurnchainRewards({ offset, limit }); const results = queryResults.map(r => { const reward: BurnchainReward = { canonical: r.canonical, @@ -111,17 +179,45 @@ export function createBurnchainRouter(db: PgStore): express.Router { }; return reward; }); - const response: BurnchainRewardListResponse = { limit, offset, results }; - // TODO: schema validation - res.json(response); - }) + await reply.send({ limit, offset, results }); + } ); - router.get( + fastify.get( '/rewards/:address', - asyncHandler(async (req, res) => { - const limit = getPagingQueryLimit(ResourceType.Burnchain, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); + { + schema: { + operationId: 'get_burnchain_reward_list_by_address', + summary: 'Get recent burnchain reward for the given recipient', + description: `Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the given recipient with the associated amounts and block info`, + tags: ['Stacking Rewards'], + params: Type.Object({ + address: Type.String({ + description: `Reward recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format`, + examples: ['36hQtSEXBMevo5chpxhfAGiCTSC34QKgda'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Burnchain), + offset: OffsetParam(), + }), + response: { + 200: Type.Object( + { + limit: Type.Integer(), + offset: Type.Integer(), + results: Type.Array(BurnchainRewardSchema), + }, + { + description: 'List of burnchain reward recipients and amounts', + } + ), + }, + }, + }, + async (req, reply) => { + const limit = req.query.limit; + const offset = req.query.offset ?? 0; const { address } = req.params; let burnchainAddress: string | undefined = undefined; @@ -136,12 +232,12 @@ export function createBurnchainRouter(db: PgStore): express.Router { } if (!burnchainAddress) { throw new InvalidRequestError( - `Address ${queryAddr} is not a valid Bitcoin or STX address.`, + `Address is not a valid Bitcoin or STX address.`, InvalidRequestErrorType.invalid_address ); } - const queryResults = await db.getBurnchainRewards({ + const queryResults = await fastify.db.getBurnchainRewards({ burnchainRecipient: burnchainAddress, offset, limit, @@ -158,15 +254,30 @@ export function createBurnchainRouter(db: PgStore): express.Router { }; return reward; }); - const response: BurnchainRewardListResponse = { limit, offset, results }; - // TODO: schema validation - res.json(response); - }) + await reply.send({ limit, offset, results }); + } ); - router.get( + fastify.get( '/rewards/:address/total', - asyncHandler(async (req, res) => { + { + schema: { + operationId: 'get_burnchain_rewards_total_by_address', + summary: 'Get total burnchain rewards for the given recipient', + description: `Retrieves the total burnchain (e.g. Bitcoin) rewards for a given recipient \`address\``, + tags: ['Stacking Rewards'], + params: Type.Object({ + address: Type.String({ + description: `Reward recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format`, + examples: ['36hQtSEXBMevo5chpxhfAGiCTSC34QKgda'], + }), + }), + response: { + 200: BurnchainRewardsTotalSchema, + }, + }, + }, + async (req, reply) => { const { address } = req.params; let burnchainAddress: string | undefined = undefined; @@ -186,15 +297,14 @@ export function createBurnchainRouter(db: PgStore): express.Router { ); } - const queryResults = await db.getBurnchainRewardsTotal(burnchainAddress); + const queryResults = await fastify.db.getBurnchainRewardsTotal(burnchainAddress); const response: BurnchainRewardsTotal = { reward_recipient: queryResults.reward_recipient, reward_amount: queryResults.reward_amount.toString(), }; - // TODO: schema validation - res.json(response); - }) + await reply.send(response); + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/schemas/entities/burnchain-rewards.ts b/src/api/schemas/entities/burnchain-rewards.ts new file mode 100644 index 000000000..c6a0ba825 --- /dev/null +++ b/src/api/schemas/entities/burnchain-rewards.ts @@ -0,0 +1,75 @@ +import { Static, Type } from '@sinclair/typebox'; + +export const BurnchainRewardsTotalSchema = Type.Object( + { + reward_recipient: Type.String({ + description: + 'The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)', + }), + reward_amount: Type.String({ + description: + 'The total amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin)', + }), + }, + { title: 'BurnchainRewardsTotal', description: 'Total burnchain rewards made to a recipient' } +); +export type BurnchainRewardsTotal = Static; + +export const BurnchainRewardSchema = Type.Object( + { + canonical: Type.Boolean({ + description: 'Set to `true` if block corresponds to the canonical burchchain tip', + }), + burn_block_hash: Type.String({ + description: 'The hash representing the burnchain block', + }), + burn_block_height: Type.Integer({ + description: 'Height of the burnchain block', + }), + burn_amount: Type.String({ + description: + 'The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin)', + }), + reward_recipient: Type.String({ + description: + 'The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)', + }), + reward_amount: Type.String({ + description: + 'The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin)', + }), + reward_index: Type.Integer({ + description: + "The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block", + }), + }, + { + title: 'BurnchainReward', + description: 'Reward payment made on the burnchain', + } +); +export type BurnchainReward = Static; + +export const BurnchainRewardSlotHolderSchema = Type.Object( + { + canonical: Type.Boolean({ + description: 'Set to `true` if block corresponds to the canonical burchchain tip', + }), + burn_block_hash: Type.String({ + description: 'The hash representing the burnchain block', + }), + burn_block_height: Type.Integer({ + description: 'Height of the burnchain block', + }), + address: Type.String({ + description: + 'The recipient address that validly received PoX commitments, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)', + }), + slot_index: Type.Integer({ + description: + "The index position of the reward entry, useful for ordering when there's more than one slot per burnchain block", + }), + }, + { title: 'BurnchainRewardSlotHolder', description: 'Reward slot holder on the burnchain' } +); +export type BurnchainRewardSlotHolder = Static; From 67eeb654e9178676ecaba14015a4f5f15bbbf204 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 1 Aug 2024 16:26:13 +0200 Subject: [PATCH 12/56] feat: refactor `/extended/v1/address/*` endpoints to fastify --- src/api/init.ts | 7 +- src/api/query-helpers.ts | 61 +-- src/api/routes/address.ts | 717 ++++++++++++++++++-------- src/api/routes/contract.ts | 6 +- src/api/routes/pox.ts | 5 +- src/api/routes/tokens.ts | 6 +- src/api/routes/tx.ts | 3 +- src/api/schemas/entities/addresses.ts | 304 +++++++++++ src/api/schemas/entities/balances.ts | 52 ++ 9 files changed, 877 insertions(+), 284 deletions(-) create mode 100644 src/api/schemas/entities/addresses.ts create mode 100644 src/api/schemas/entities/balances.ts diff --git a/src/api/init.ts b/src/api/init.ts index bf108f1d7..2d62d9d9e 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -11,7 +11,7 @@ import { ContractRoutes } from './routes/contract'; import { createCoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; import { BlockRoutes } from './routes/block'; import { createFaucetRouter } from './routes/faucets'; -import { createAddressRouter } from './routes/address'; +import { AddressRoutes } from './routes/address'; import { createSearchRouter } from './routes/search'; import { StxSupplyRoutes } from './routes/stx-supply'; import { createRosettaNetworkRouter } from './routes/rosetta/network'; @@ -67,6 +67,7 @@ declare module 'fastify' { interface FastifyInstance { db: PgStore; writeDb?: PgWriteStore; + chainId: ChainID; } } @@ -209,7 +210,6 @@ export async function startApiServer(opts: { '/v1', (() => { const v1 = express.Router(); - v1.use('/address', createAddressRouter(datastore, chainId)); v1.use('/search', createSearchRouter(datastore)); v1.use('/debug', createDebugRouter(datastore)); @@ -390,6 +390,7 @@ export async function startApiServer(opts: { }).withTypeProvider(); fastify.decorate('db', opts.datastore); fastify.decorate('writeDb', opts.writeDatastore); + fastify.decorate('chainId', opts.chainId); await fastify.register(FastifyMetrics, { endpoint: null }); await fastify.register(FastifyCors, { exposedHeaders: ['X-API-Version'] }); fastify.addHook('preHandler', async (_, reply) => { @@ -417,6 +418,7 @@ export async function startApiServer(opts: { await fastify.register(MicroblockRoutes, { prefix: '/extended/v1/microblock' }); await fastify.register(BlockRoutes, { prefix: '/extended/v1/block' }); await fastify.register(BurnchainRoutes, { prefix: '/extended/v1/burnchain' }); + await fastify.register(AddressRoutes, { prefix: '/extended/v1/address' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -437,6 +439,7 @@ export async function startApiServer(opts: { '^/extended/v1/microblock', '^/extended/v1/block', '^/extended/v1/burnchain', + '^/extended/v1/address', ].join('|'), 'i' ); diff --git a/src/api/query-helpers.ts b/src/api/query-helpers.ts index 9011adb6c..95ef621a7 100644 --- a/src/api/query-helpers.ts +++ b/src/api/query-helpers.ts @@ -79,9 +79,8 @@ export function isUnanchoredRequest( * If an error is encountered while parsing the params then a 400 response with an error message is sent and the function throws. */ export function getBlockParams( - req: Request, - res: Response, - next: NextFunction + height: number | undefined, + unanchored: boolean | undefined ): | { blockHeight: number; @@ -92,33 +91,10 @@ export function getBlockParams( blockHeight?: number; } | never { - if ('height' in req.query || 'block_height' in req.query) { - const heightQueryValue = req.query['height'] ?? req.query['block_height']; - if (typeof heightQueryValue !== 'string') { - handleBadRequest( - res, - next, - `Unexpected type for 'height' parameter: ${JSON.stringify(heightQueryValue)}` - ); - } - const heightFilter = parseInt(heightQueryValue, 10); - if (!Number.isInteger(heightFilter)) { - handleBadRequest( - res, - next, - `Query parameter 'height' is not a valid integer: ${req.query['height']}` - ); - } - if (heightFilter < 1) { - handleBadRequest( - res, - next, - `Query parameter 'height' is not a positive integer: ${heightFilter}` - ); - } - return { blockHeight: heightFilter }; + if (height !== undefined) { + return { blockHeight: height }; } else { - return { includeUnanchored: isUnanchoredRequest(req, res, next) }; + return { includeUnanchored: unanchored ?? false }; } } @@ -217,19 +193,16 @@ export function getBlockHeightPathParam( * @returns `undefined` if param does not exist || block_height if number || block_hash if string || never if error */ export function parseUntilBlockQuery( - req: Request, - res: Response, - next: NextFunction -): undefined | number | string | never { - const untilBlock = req.query.until_block; + untilBlock: string | undefined, + unanchored: boolean | undefined +): undefined | number | string { if (!untilBlock) return; if (typeof untilBlock === 'string') { - //if mutually exclusive unachored is also specified, throw bad request error - if (isUnanchoredRequest(req, res, next)) { - handleBadRequest( - res, - next, - `can't handle both 'unanchored' and 'until_block' in the same request ` + if (unanchored !== undefined) { + // if mutually exclusive unachored is also specified, throw bad request error + throw new InvalidRequestError( + `can't handle both 'unanchored' and 'until_block' in the same request`, + InvalidRequestErrorType.bad_request ); } if (has0xPrefix(untilBlock)) { @@ -239,16 +212,14 @@ export function parseUntilBlockQuery( //parse int to check if it is a block_height const block_height = Number.parseInt(untilBlock, 10); if (isNaN(block_height) || block_height < 1) { - handleBadRequest( - res, - next, - `Unexpected integer value for block height path parameter: ${block_height}` + throw new InvalidRequestError( + `Unexpected integer value for block height path parameter`, + InvalidRequestErrorType.bad_request ); } return block_height; } } - handleBadRequest(res, next, 'until_block must be either `string` or `number`'); } export function parseTraitAbi(req: Request, res: Response, next: NextFunction): ClarityAbi | never { diff --git a/src/api/routes/address.ts b/src/api/routes/address.ts index c92659d94..051a011f1 100644 --- a/src/api/routes/address.ts +++ b/src/api/routes/address.ts @@ -1,51 +1,49 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; import * as Bluebird from 'bluebird'; import { BlockIdentifier } from '../../datastore/common'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; -import { - isUnanchoredRequest, - getBlockParams, - parseUntilBlockQuery, - validatePrincipal, -} from '../query-helpers'; -import { ChainID, formatMapToObject, getSendManyContract, isValidPrincipal } from '../../helpers'; +import { getBlockParams, parseUntilBlockQuery, validatePrincipal } from '../query-helpers'; +import { formatMapToObject, getSendManyContract, isValidPrincipal } from '../../helpers'; import { getTxFromDataStore, parseDbEvent, parseDbMempoolTx, parseDbTx, } from '../controllers/db-controller'; -import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; -import { - TransactionResults, - TransactionEvent, - AddressBalanceResponse, - AddressStxBalanceResponse, - AddressStxInboundListResponse, - InboundStxTransfer, - MempoolTransactionListResponse, - AddressTransactionWithTransfers, - AddressTransactionsWithTransfersListResponse, - AddressNonces, -} from '@stacks/stacks-blockchain-api-types'; +import { InvalidRequestError, InvalidRequestErrorType, NotFoundError } from '../../errors'; import { decodeClarityValueToRepr } from 'stacks-encoding-native-js'; -import { validate } from '../validate'; -import { NextFunction, Request, Response } from 'express'; -import { - ETagType, - getETagCacheHandler, - setETagCacheHeaders, -} from '../controllers/cache-controller'; +import { handleChainTipCache, handleMempoolCache } from '../controllers/cache-controller'; import { PgStore } from '../../datastore/pg-store'; import { logger } from '../../logger'; import { has0xPrefix, isProdEnv } from '@hirosystems/api-toolkit'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam, UnanchoredParamSchema } from '../schemas/params'; +import { StxBalance, StxBalanceSchema } from '../schemas/entities/balances'; +import { + AddressBalance, + AddressBalanceSchema, + AddressNonces, + AddressNoncesSchema, + AddressTokenOfferingLocked, + AddressTokenOfferingLockedSchema, + AddressTransactionWithTransfers, + AddressTransactionWithTransfersSchema, + InboundStxTransfer, + InboundStxTransferSchema, +} from '../schemas/entities/addresses'; +import { PaginatedResponse } from '../schemas/util'; +import { TransactionSchema } from '../schemas/entities/transactions'; +import { TransactionEvent, TransactionEventSchema } from '../schemas/entities/transaction-events'; +import { + MempoolTransaction, + MempoolTransactionSchema, +} from '../schemas/entities/mempool-transactions'; + async function getBlockHeight( untilBlock: number | string | undefined, - req: Request, - res: Response, - next: NextFunction, + unanchored: boolean | undefined, db: PgStore ): Promise { let blockHeight = 0; @@ -54,20 +52,14 @@ async function getBlockHeight( } else if (typeof untilBlock === 'string') { const block = await db.getBlock({ hash: untilBlock }); if (!block.found) { - const error = `block not found with hash ${untilBlock}`; - res.status(404).json({ error: error }); - next(error); - throw new Error(error); + throw new NotFoundError(`block not found with hash`); } blockHeight = block.result.block_height; } else { - const includeUnanchored = isUnanchoredRequest(req, res, next); + const includeUnanchored = unanchored ?? false; const currentBlockHeight = await db.getCurrentBlockHeight(); if (!currentBlockHeight.found) { - const error = `no current block`; - res.status(404).json({ error: error }); - next(error); - throw new Error(error); + throw new NotFoundError(`no current block`); } blockHeight = currentBlockHeight.result + (includeUnanchored ? 1 : 0); @@ -76,32 +68,69 @@ async function getBlockHeight( return blockHeight; } -interface AddressAssetEvents { - results: TransactionEvent[]; - limit: number; - offset: number; - total: number; -} - -export function createAddressRouter(db: PgStore, chainId: ChainID): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - const mempoolCacheHandler = getETagCacheHandler(db, ETagType.mempool); - - router.get( - '/:stx_address/stx', - cacheHandler, - asyncHandler(async (req, res, next) => { - const stxAddress = req.params['stx_address']; +export const AddressRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( + '/:principal/stx', + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_account_stx_balance', + summary: 'Get account STX balance', + description: `Retrieves STX token balance for a given Address or Contract Identifier.`, + tags: ['Accounts'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + }), + querystring: Type.Object({ + unanchored: Type.Optional(UnanchoredParamSchema), + until_block: Type.Optional( + Type.String({ + description: + 'Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time.', + examples: [ + '60000', + '0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79', + ], + }) + ), + }), + response: { + 200: Type.Intersect( + [ + StxBalanceSchema, + Type.Object({ + token_offering_locked: Type.Optional(AddressTokenOfferingLockedSchema), + }), + ], + { + title: 'AddressStxBalanceResponse', + description: 'GET request that returns address balances', + } + ), + }, + }, + }, + async (req, reply) => { + const stxAddress = req.params.principal; validatePrincipal(stxAddress); - const untilBlock = parseUntilBlockQuery(req, res, next); + const untilBlock = parseUntilBlockQuery(req.query.until_block, req.query.unanchored); - const result = await db.sqlTransaction(async sql => { - const blockHeight = await getBlockHeight(untilBlock, req, res, next, db); + const result = await fastify.db.sqlTransaction(async sql => { + const blockHeight = await getBlockHeight(untilBlock, req.query.unanchored, fastify.db); // Get balance info for STX token - const stxBalanceResult = await db.getStxBalanceAtBlock(stxAddress, blockHeight); - const tokenOfferingLocked = await db.getTokenOfferingLocked(stxAddress, blockHeight); - const result: AddressStxBalanceResponse = { + const stxBalanceResult = await fastify.db.getStxBalanceAtBlock(stxAddress, blockHeight); + const tokenOfferingLocked = await fastify.db.getTokenOfferingLocked( + stxAddress, + blockHeight + ); + const result: StxBalance & { token_offering_locked?: AddressTokenOfferingLocked } = { balance: stxBalanceResult.balance.toString(), total_sent: stxBalanceResult.totalSent.toString(), total_received: stxBalanceResult.totalReceived.toString(), @@ -118,29 +147,61 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout } return result; }); - setETagCacheHeaders(res); - res.json(result); - }) + await reply.send(result); + } ); // get balances for STX, FTs, and counts for NFTs - router.get( - '/:stx_address/balances', - cacheHandler, - asyncHandler(async (req, res, next) => { - const stxAddress = req.params['stx_address']; + fastify.get( + '/:principal/balances', + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_account_balance', + summary: 'Get account balances', + description: `Retrieves total account balance information for a given Address or Contract Identifier. This includes the balances of STX Tokens, Fungible Tokens and Non-Fungible Tokens for the account.`, + tags: ['Accounts'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + }), + querystring: Type.Object({ + unanchored: Type.Optional(UnanchoredParamSchema), + until_block: Type.Optional( + Type.String({ + description: + 'Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time.', + examples: [ + '60000', + '0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79', + ], + }) + ), + }), + response: { + 200: AddressBalanceSchema, + }, + }, + }, + async (req, reply) => { + const stxAddress = req.params.principal; validatePrincipal(stxAddress); - const untilBlock = parseUntilBlockQuery(req, res, next); + const untilBlock = parseUntilBlockQuery(req.query.until_block, req.query.unanchored); - const result = await db.sqlTransaction(async sql => { - const blockHeight = await getBlockHeight(untilBlock, req, res, next, db); + const result = await fastify.db.sqlTransaction(async sql => { + const blockHeight = await getBlockHeight(untilBlock, req.query.unanchored, fastify.db); // Get balance info for STX token - const stxBalanceResult = await db.getStxBalanceAtBlock(stxAddress, blockHeight); - const tokenOfferingLocked = await db.getTokenOfferingLocked(stxAddress, blockHeight); + const stxBalanceResult = await fastify.db.getStxBalanceAtBlock(stxAddress, blockHeight); + const tokenOfferingLocked = await fastify.db.getTokenOfferingLocked( + stxAddress, + blockHeight + ); // Get balances for fungible tokens - const ftBalancesResult = await db.getFungibleTokenBalances({ + const ftBalancesResult = await fastify.db.getFungibleTokenBalances({ stxAddress, untilBlock: blockHeight, }); @@ -153,7 +214,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout }); // Get counts for non-fungible tokens - const nftBalancesResult = await db.getNonFungibleTokenCounts({ + const nftBalancesResult = await fastify.db.getNonFungibleTokenCounts({ stxAddress, untilBlock: blockHeight, }); @@ -165,7 +226,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout }; }); - const result: AddressBalanceResponse = { + const result: AddressBalance = { stx: { balance: stxBalanceResult.balance.toString(), total_sent: stxBalanceResult.totalSent.toString(), @@ -187,27 +248,69 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout } return result; }); - setETagCacheHeaders(res); - res.json(result); - }) + await reply.send(result); + } ); /** * Get recent STX transactions associated with a principal (stx address or contract id, * sender or receiver). */ - router.get( + fastify.get( '/:principal/transactions', - cacheHandler, - asyncHandler(async (req, res, next) => { - const principal = req.params['principal']; + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_account_transactions', + summary: 'Get account transactions', + description: `**NOTE:** This endpoint is deprecated in favor of [Get address transactions](/api/get-address-transactions). + + Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). + + If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates.`, + tags: ['Accounts'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Tx), + offset: OffsetParam(), + height: Type.Optional( + Type.Integer({ description: 'Filter for transactions only at this given block height' }) + ), + unanchored: Type.Optional(UnanchoredParamSchema), + until_block: Type.Optional( + Type.String({ + description: + 'Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time.', + examples: [ + '60000', + '0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79', + ], + }) + ), + }), + response: { + 200: PaginatedResponse(TransactionSchema, { + title: 'AddressTransactionsListResponse', + description: 'GET request that returns account transactions', + }), + }, + }, + }, + async (req, reply) => { + const principal = req.params.principal; validatePrincipal(principal); - const untilBlock = parseUntilBlockQuery(req, res, next); - const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); + const untilBlock = parseUntilBlockQuery(req.query.until_block, req.query.unanchored); + const limit = req.query.limit; + const offset = req.query.offset; - const response = await db.sqlTransaction(async sql => { - const blockParams = getBlockParams(req, res, next); + const response = await fastify.db.sqlTransaction(async sql => { + const blockParams = getBlockParams(req.query.height, req.query.unanchored); let atSingleBlock = false; let blockHeight = 0; if (blockParams.blockHeight) { @@ -220,44 +323,65 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout atSingleBlock = true; blockHeight = blockParams.blockHeight; } else { - blockHeight = await getBlockHeight(untilBlock, req, res, next, db); + blockHeight = await getBlockHeight(untilBlock, req.query.unanchored, fastify.db); } - const { results: txResults, total } = await db.getAddressTxs({ + const { results: txResults, total } = await fastify.db.getAddressTxs({ stxAddress: principal, limit, offset, blockHeight, atSingleBlock, }); - const results = txResults.map(dbTx => - parseDbTx(dbTx) - ) as import('@stacks/stacks-blockchain-api-types').Transaction[]; - const response: TransactionResults = { limit, offset, total, results }; + const results = txResults.map(dbTx => parseDbTx(dbTx)); + const response = { limit, offset, total, results }; return response; }); - setETagCacheHeaders(res); - res.json(response); - }) + await reply.send(response); + } ); /** * @deprecated See `/v2/addresses/:address/transactions/:tx_id` */ - router.get( - '/:stx_address/:tx_id/with_transfers', - cacheHandler, - asyncHandler(async (req, res) => { - const stxAddress = req.params['stx_address']; - let tx_id = req.params['tx_id']; + fastify.get( + '/:principal/:tx_id/with_transfers', + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_single_transaction_with_transfers', + summary: 'Get account transaction information for specific transaction', + description: `**NOTE:** This endpoint is deprecated in favor of [Get events for an address transaction](/api/get-address-transaction-events). + + Retrieves transaction details for a given Transaction Id \`tx_id\`, for a given account or contract Identifier.`, + tags: ['Accounts'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + tx_id: Type.String({ + description: 'Transaction ID', + examples: ['0x34d79c7cfc2fe525438736733e501a4bf0308a5556e3e080d1e2c0858aad7448'], + }), + }), + response: { + 200: AddressTransactionWithTransfersSchema, + }, + }, + }, + async (req, reply) => { + const stxAddress = req.params.principal; + let tx_id = req.params.tx_id; validatePrincipal(stxAddress); if (!has0xPrefix(tx_id)) { tx_id = '0x' + tx_id; } - const result = await db.sqlTransaction(async sql => { - const results = await db.getInformationTxsWithStxTransfers({ stxAddress, tx_id }); + const result = await fastify.db.sqlTransaction(async sql => { + const results = await fastify.db.getInformationTxsWithStxTransfers({ stxAddress, tx_id }); if (results && results.tx) { - const txQuery = await getTxFromDataStore(db, { + const txQuery = await getTxFromDataStore(fastify.db, { txId: results.tx.tx_id, dbTx: results.tx, includeUnanchored: false, @@ -266,7 +390,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout throw new Error('unexpected tx not found -- fix tx enumeration query'); } const result: AddressTransactionWithTransfers = { - tx: txQuery.result as import('@stacks/stacks-blockchain-api-types').Transaction, + tx: txQuery.result, stx_sent: results.stx_sent.toString(), stx_received: results.stx_received.toString(), stx_transfers: results.stx_transfers.map(transfer => ({ @@ -279,27 +403,64 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout } }); if (result) { - setETagCacheHeaders(res); - res.json(result); + await reply.send(result); } else { - res.status(404).json({ error: 'No matching transaction found' }); + throw new NotFoundError(`No matching transaction found`); } - }) + } ); /** * @deprecated See `/v2/addresses/:address/transactions` */ - router.get( - '/:stx_address/transactions_with_transfers', - cacheHandler, - asyncHandler(async (req, res, next) => { - const stxAddress = req.params['stx_address']; + fastify.get( + '/:principal/transactions_with_transfers', + { + preHandler: handleChainTipCache, + schema: { + deprecated: true, + operationId: 'get_account_transactions_with_transfers', + summary: 'Get account transactions including STX transfers for each transaction.', + description: `Retrieve all transactions for an account or contract identifier including STX transfers for each transaction.`, + tags: ['Accounts'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Tx), + offset: OffsetParam(), + height: Type.Optional( + Type.Integer({ description: 'Filter for transactions only at this given block height' }) + ), + unanchored: Type.Optional(UnanchoredParamSchema), + until_block: Type.Optional( + Type.String({ + description: + 'Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time.', + examples: [ + '60000', + '0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79', + ], + }) + ), + }), + response: { + 200: PaginatedResponse(AddressTransactionWithTransfersSchema, { + title: 'AddressTransactionsWithTransfersListResponse', + }), + }, + }, + }, + async (req, reply) => { + const stxAddress = req.params.principal; validatePrincipal(stxAddress); - const untilBlock = parseUntilBlockQuery(req, res, next); + const untilBlock = parseUntilBlockQuery(req.query.until_block, req.query.unanchored); - const response = await db.sqlTransaction(async sql => { - const blockParams = getBlockParams(req, res, next); + const response = await fastify.db.sqlTransaction(async sql => { + const blockParams = getBlockParams(req.query.height, req.query.unanchored); let atSingleBlock = false; let blockHeight = 0; if (blockParams.blockHeight) { @@ -312,12 +473,12 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout atSingleBlock = true; blockHeight = blockParams.blockHeight; } else { - blockHeight = await getBlockHeight(untilBlock, req, res, next, db); + blockHeight = await getBlockHeight(untilBlock, req.query.unanchored, fastify.db); } - const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); - const { results: txResults, total } = await db.getAddressTxsWithAssetTransfers({ + const limit = req.query.limit; + const offset = req.query.offset; + const { results: txResults, total } = await fastify.db.getAddressTxsWithAssetTransfers({ stxAddress: stxAddress, limit, offset, @@ -326,7 +487,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout }); const results = await Bluebird.mapSeries(txResults, async entry => { - const txQuery = await getTxFromDataStore(db, { + const txQuery = await getTxFromDataStore(fastify.db, { txId: entry.tx.tx_id, dbTx: entry.tx, includeUnanchored: blockParams.includeUnanchored ?? false, @@ -335,7 +496,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout throw new Error('unexpected tx not found -- fix tx enumeration query'); } const result: AddressTransactionWithTransfers = { - tx: txQuery.result as import('@stacks/stacks-blockchain-api-types').Transaction, + tx: txQuery.result, stx_sent: entry.stx_sent.toString(), stx_received: entry.stx_received.toString(), stx_transfers: entry.stx_transfers.map(transfer => ({ @@ -366,7 +527,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout return result; }); - const response: AddressTransactionsWithTransfersListResponse = { + const response = { limit, offset, total, @@ -374,59 +535,126 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout }; return response; }); - setETagCacheHeaders(res); - res.json(response); - }) + await reply.send(response); + } ); - router.get( - '/:stx_address/assets', - cacheHandler, - asyncHandler(async (req, res, next) => { + fastify.get( + '/:principal/assets', + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_account_assets', + summary: 'Get account assets', + description: `Retrieves a list of all assets events associated with an account or a Contract Identifier. This includes Transfers, Mints.`, + tags: ['Accounts'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Event), + offset: OffsetParam(), + unanchored: Type.Optional(UnanchoredParamSchema), + until_block: Type.Optional( + Type.String({ + description: + 'Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time.', + examples: [ + '60000', + '0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79', + ], + }) + ), + }), + response: { + 200: PaginatedResponse(TransactionEventSchema, { title: 'AddressAssetsListResponse' }), + }, + }, + }, + async (req, reply) => { // get recent asset event associated with address - const stxAddress = req.params['stx_address']; + const stxAddress = req.params.principal; validatePrincipal(stxAddress); - const untilBlock = parseUntilBlockQuery(req, res, next); + const untilBlock = parseUntilBlockQuery(req.query.until_block, req.query.unanchored); - const limit = getPagingQueryLimit(ResourceType.Event, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); + const limit = req.query.limit; + const offset = req.query.offset; - const response = await db.sqlTransaction(async sql => { - const blockHeight = await getBlockHeight(untilBlock, req, res, next, db); - const { results: assetEvents, total } = await db.getAddressAssetEvents({ + const response = await fastify.db.sqlTransaction(async sql => { + const blockHeight = await getBlockHeight(untilBlock, req.query.unanchored, fastify.db); + const { results: assetEvents, total } = await fastify.db.getAddressAssetEvents({ stxAddress, limit, offset, blockHeight, }); - const results = assetEvents.map(event => parseDbEvent(event)); - const response: AddressAssetEvents = { limit, offset, total, results }; + const results: TransactionEvent[] = assetEvents.map(event => parseDbEvent(event)); + const response = { limit, offset, total, results }; return response; }); - setETagCacheHeaders(res); - res.json(response); - }) + await reply.send(response); + } ); - router.get( - '/:stx_address/stx_inbound', - cacheHandler, - asyncHandler(async (req, res, next) => { + fastify.get( + '/:principal/stx_inbound', + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_account_inbound', + summary: 'Get inbound STX transfers', + description: `Retrieves a list of STX transfers with memos to the given principal. This includes regular transfers from a stx-transfer transaction type, + and transfers from contract-call transactions a the \`send-many-memo\` bulk sending contract.`, + tags: ['Accounts'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Tx), + offset: OffsetParam(), + height: Type.Optional( + Type.Integer({ description: 'Filter for transactions only at this given block height' }) + ), + unanchored: Type.Optional(UnanchoredParamSchema), + until_block: Type.Optional( + Type.String({ + description: + 'Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time.', + examples: [ + '60000', + '0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79', + ], + }) + ), + }), + response: { + 200: PaginatedResponse(InboundStxTransferSchema, { + title: 'AddressStxInboundListResponse', + }), + }, + }, + }, + async (req, reply) => { // get recent inbound STX transfers with memos - const stxAddress = req.params['stx_address']; + const stxAddress = req.params.principal; try { - const sendManyContractId = getSendManyContract(chainId); + const sendManyContractId = getSendManyContract(fastify.chainId); if (!sendManyContractId || !isValidPrincipal(sendManyContractId)) { logger.error('Send many contract ID not properly configured'); - res.status(500).json({ error: 'Send many contract ID not properly configured' }); - return; + throw new Error('Send many contract ID not properly configured'); } validatePrincipal(stxAddress); - const response = await db.sqlTransaction(async sql => { + const response = await fastify.db.sqlTransaction(async sql => { let atSingleBlock = false; - const untilBlock = parseUntilBlockQuery(req, res, next); - const blockParams = getBlockParams(req, res, next); + const untilBlock = parseUntilBlockQuery(req.query.until_block, req.query.unanchored); + const blockParams = getBlockParams(req.query.height, req.query.unanchored); let blockHeight = 0; if (blockParams.blockHeight) { if (untilBlock) { @@ -438,12 +666,12 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout atSingleBlock = true; blockHeight = blockParams.blockHeight; } else { - blockHeight = await getBlockHeight(untilBlock, req, res, next, db); + blockHeight = await getBlockHeight(untilBlock, req.query.unanchored, fastify.db); } const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const { results, total } = await db.getInboundTransfers({ + const { results, total } = await fastify.db.getInboundTransfers({ stxAddress, limit, offset, @@ -460,7 +688,7 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout transfer_type: r.transfer_type as InboundStxTransfer['transfer_type'], tx_index: r.tx_index, })); - const response: AddressStxInboundListResponse = { + const response = { results: transfers, total: total, limit, @@ -468,113 +696,150 @@ export function createAddressRouter(db: PgStore, chainId: ChainID): express.Rout }; return response; }); - setETagCacheHeaders(res); - res.json(response); + await reply.send(response); } catch (error) { logger.error(error, `Unable to get inbound transfers for ${stxAddress}`); throw error; } - }) + } ); - router.get( - '/:address/mempool', - mempoolCacheHandler, - asyncHandler(async (req, res, next) => { - const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); - const offset = parsePagingQueryInput(req.query.offset ?? 0); - const address = req.params['address']; + fastify.get( + '/:principal/mempool', + { + preHandler: handleMempoolCache, + schema: { + operationId: 'get_address_mempool_transactions', + summary: 'Transactions for address', + description: `Retrieves all transactions for a given address that are currently in mempool`, + tags: ['Transactions'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Tx), + offset: OffsetParam(), + unanchored: Type.Optional(UnanchoredParamSchema), + }), + response: { + 200: PaginatedResponse(MempoolTransactionSchema, { + description: 'List of mempool transactions', + }), + }, + }, + }, + async (req, reply) => { + const limit = req.query.limit; + const offset = req.query.offset; + const address = req.params.principal; if (!isValidPrincipal(address)) { throw new InvalidRequestError( - `Invalid query parameter for "${address}", not a valid principal`, + `Invalid query parameter, not a valid principal`, InvalidRequestErrorType.invalid_param ); } - const includeUnanchored = isUnanchoredRequest(req, res, next); - const { results: txResults, total } = await db.getMempoolTxList({ + const includeUnanchored = req.query.unanchored ?? false; + const { results: txResults, total } = await fastify.db.getMempoolTxList({ offset, limit, address, includeUnanchored, }); - const results = txResults.map(tx => - parseDbMempoolTx(tx) - ) as import('@stacks/stacks-blockchain-api-types').MempoolTransaction[]; - const response: MempoolTransactionListResponse = { limit, offset, total, results }; - if (!isProdEnv) { - const schemaPath = - '@stacks/stacks-blockchain-api-types/api/transaction/get-mempool-transactions.schema.json'; - await validate(schemaPath, response); - } - setETagCacheHeaders(res, ETagType.mempool); - res.json(response); - }) + const results: MempoolTransaction[] = txResults.map(tx => parseDbMempoolTx(tx)); + const response = { limit, offset, total, results }; + await reply.send(response); + } ); - router.get( - '/:stx_address/nonces', - mempoolCacheHandler, - asyncHandler(async (req, res) => { + fastify.get( + '/:principal/nonces', + { + preHandler: handleMempoolCache, + schema: { + operationId: 'get_account_nonces', + summary: 'Get the latest nonce used by an account', + description: `Retrieves the latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions.`, + tags: ['Accounts'], + params: Type.Object({ + principal: Type.String({ + description: 'Stacks address or a Contract identifier', + examples: ['SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0'], + }), + }), + querystring: Type.Object({ + block_height: Type.Optional( + Type.Integer({ + description: 'Optionally get the nonce at a given block height.', + minimum: 1, + examples: [66119], + }) + ), + block_hash: Type.Optional( + Type.String({ + description: + 'Optionally get the nonce at a given block hash. Note - Use either of the query parameters but not both at a time.', + examples: ['0x72d53f3cba39e149dcd42708e535bdae03d73e60d2fe853aaf61c0b392f521e9'], + }) + ), + }), + response: { + 200: AddressNoncesSchema, + }, + }, + }, + async (req, reply) => { // get recent asset event associated with address - const stxAddress = req.params['stx_address']; + const stxAddress = req.params.principal; validatePrincipal(stxAddress); let blockIdentifier: BlockIdentifier | undefined; const blockHeightQuery = req.query['block_height']; const blockHashQuery = req.query['block_hash']; if (blockHeightQuery && blockHashQuery) { - res.status(400).json({ error: `Multiple block query parameters specified` }); - return; + throw new InvalidRequestError( + `Multiple block query parameters specified`, + InvalidRequestErrorType.invalid_query + ); } if (blockHeightQuery) { - const blockHeight = Number(blockHeightQuery); - if (!Number.isInteger(blockHeight) || blockHeight < 1) { - res.status(400).json({ - error: `Query parameter 'block_height' is not a valid integer: ${blockHeightQuery}`, - }); - return; - } - blockIdentifier = { height: blockHeight }; + blockIdentifier = { height: blockHeightQuery }; } else if (blockHashQuery) { - if (typeof blockHashQuery !== 'string' || !has0xPrefix(blockHashQuery)) { - res.status(400).json({ - error: `Query parameter 'block_hash' is not a valid block hash hex string: ${blockHashQuery}`, - }); - return; + if (!has0xPrefix(blockHashQuery)) { + throw new InvalidRequestError( + `Query parameter 'block_hash' is not a valid block hash hex string`, + InvalidRequestErrorType.invalid_param + ); } blockIdentifier = { hash: blockHashQuery }; } if (blockIdentifier) { - const nonceQuery = await db.getAddressNonceAtBlock({ stxAddress, blockIdentifier }); + const nonceQuery = await fastify.db.getAddressNonceAtBlock({ stxAddress, blockIdentifier }); if (!nonceQuery.found) { - res.status(404).json({ - error: `No block found for ${JSON.stringify(blockIdentifier)}`, - }); - return; + throw new NotFoundError(`No block found for ${JSON.stringify(blockIdentifier)}`); } const results: AddressNonces = { - last_executed_tx_nonce: nonceQuery.result.lastExecutedTxNonce as number, + last_executed_tx_nonce: nonceQuery.result.lastExecutedTxNonce, possible_next_nonce: nonceQuery.result.possibleNextNonce, - // Note: OpenAPI type generator doesn't support `nullable: true` so force cast it here - last_mempool_tx_nonce: null as unknown as number, + last_mempool_tx_nonce: null, detected_missing_nonces: [], detected_mempool_nonces: [], }; - setETagCacheHeaders(res); - res.json(results); + await reply.send(results); } else { - const nonces = await db.getAddressNonces({ stxAddress }); + const nonces = await fastify.db.getAddressNonces({ stxAddress }); const results: AddressNonces = { - last_executed_tx_nonce: nonces.lastExecutedTxNonce as number, - last_mempool_tx_nonce: nonces.lastMempoolTxNonce as number, + last_executed_tx_nonce: nonces.lastExecutedTxNonce, + last_mempool_tx_nonce: nonces.lastMempoolTxNonce, possible_next_nonce: nonces.possibleNextNonce, detected_missing_nonces: nonces.detectedMissingNonces, detected_mempool_nonces: nonces.detectedMempoolNonces, }; - setETagCacheHeaders(res); - res.json(results); + await reply.send(results); } - }) + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/contract.ts b/src/api/routes/contract.ts index c83e02876..679889d5b 100644 --- a/src/api/routes/contract.ts +++ b/src/api/routes/contract.ts @@ -5,7 +5,7 @@ import { handleChainTipCache } from '../controllers/cache-controller'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { Server } from 'node:http'; -import { LimitParam, OffsetParam, UnanchoredParamSchema } from '../schemas/params'; +import { LimitParam, OffsetParam } from '../schemas/params'; import { InvalidRequestError, InvalidRequestErrorType, NotFoundError } from '../../errors'; import { ClarityAbi } from '@stacks/transactions'; import { SmartContractSchema } from '../schemas/entities/smart-contracts'; @@ -81,9 +81,6 @@ export const ContractRoutes: FastifyPluginAsync< examples: ['SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles'], }), }), - querystring: Type.Object({ - unanchored: UnanchoredParamSchema, - }), response: { 200: SmartContractSchema, }, @@ -117,7 +114,6 @@ export const ContractRoutes: FastifyPluginAsync< querystring: Type.Object({ limit: LimitParam(ResourceType.Contract, 'Limit', 'max number of events to fetch'), offset: OffsetParam(), - unanchored: UnanchoredParamSchema, }), response: { 200: Type.Object( diff --git a/src/api/routes/pox.ts b/src/api/routes/pox.ts index c99b5a7ba..e03186b46 100644 --- a/src/api/routes/pox.ts +++ b/src/api/routes/pox.ts @@ -109,7 +109,10 @@ export function createPoxEventsRouter( const afterBlock = getBlockHeightQueryParam('after_block', false, req, res, next) || 0; const response = await db.sqlTransaction(async sql => { - const blockParams = getBlockParams(req, res, next); + const blockParams = getBlockParams( + req.query.height ? parseInt(req.query.height as string) : undefined, + req.query.unnachored ? req.query.unnachored === 'true' : undefined + ); let blockHeight: number; if (blockParams.blockHeight !== undefined) { blockHeight = blockParams.blockHeight; diff --git a/src/api/routes/tokens.ts b/src/api/routes/tokens.ts index fdad63d50..f3d5a7db3 100644 --- a/src/api/routes/tokens.ts +++ b/src/api/routes/tokens.ts @@ -52,7 +52,7 @@ export const TokenRoutes: FastifyPluginAsync< ), limit: LimitParam(ResourceType.Token, 'Limit', 'max number of tokens to fetch'), offset: OffsetParam('Offset', 'index of first tokens to fetch'), - unanchored: UnanchoredParamSchema, + unanchored: Type.Optional(UnanchoredParamSchema), tx_metadata: Type.Boolean({ default: false, description: @@ -162,7 +162,7 @@ export const TokenRoutes: FastifyPluginAsync< }), limit: LimitParam(ResourceType.Token, 'Limit', 'max number of events to fetch'), offset: OffsetParam('Offset', 'index of first event to fetch'), - unanchored: UnanchoredParamSchema, + unanchored: Type.Optional(UnanchoredParamSchema), tx_metadata: Type.Boolean({ default: false, description: @@ -273,7 +273,7 @@ export const TokenRoutes: FastifyPluginAsync< }), limit: LimitParam(ResourceType.Token, 'Limit', 'max number of events to fetch'), offset: OffsetParam('Offset', 'index of first event to fetch'), - unanchored: UnanchoredParamSchema, + unanchored: Type.Optional(UnanchoredParamSchema), tx_metadata: Type.Boolean({ default: false, description: diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index 6d5ec7180..802a82298 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -516,7 +516,7 @@ export const TxRoutes: FastifyPluginAsync< querystring: Type.Object({ event_limit: LimitParam(ResourceType.Tx), event_offset: OffsetParam(), - unanchored: UnanchoredParamSchema, + unanchored: Type.Optional(UnanchoredParamSchema), }), response: { 200: Type.Union([TransactionSchema, MempoolTransactionSchema]), @@ -566,7 +566,6 @@ export const TxRoutes: FastifyPluginAsync< querystring: Type.Object({ event_limit: LimitParam(ResourceType.Tx), event_offset: OffsetParam(), - unanchored: UnanchoredParamSchema, }), response: { 200: RawTransactionResponseSchema, diff --git a/src/api/schemas/entities/addresses.ts b/src/api/schemas/entities/addresses.ts new file mode 100644 index 000000000..f9cf08c68 --- /dev/null +++ b/src/api/schemas/entities/addresses.ts @@ -0,0 +1,304 @@ +import { Static, Type } from '@sinclair/typebox'; +import { TransactionSchema } from './transactions'; +import { TransactionEventAssetTypeSchema } from './transaction-events'; +import { Nullable } from '../util'; +import { FtBalanceSchema, NftBalanceSchema, StxBalanceSchema } from './balances'; + +export const AddressNoncesSchema = Type.Object( + { + last_mempool_tx_nonce: Nullable( + Type.Integer({ + description: + 'The latest nonce found within mempool transactions sent by this address. Will be null if there are no current mempool transactions for this address.', + }) + ), + last_executed_tx_nonce: Nullable( + Type.Integer({ + description: + 'The latest nonce found within transactions sent by this address, including unanchored microblock transactions. Will be null if there are no current transactions for this address.', + }) + ), + possible_next_nonce: Type.Integer({ + description: + "The likely nonce required for creating the next transaction, based on the last nonces seen by the API. This can be incorrect if the API's mempool or transactions aren't fully synchronized, even by a small amount, or if a previous transaction is still propagating through the Stacks blockchain network when this endpoint is called.", + }), + detected_missing_nonces: Type.Array(Type.Integer(), { + description: + 'Nonces that appear to be missing and likely causing a mempool transaction to be stuck.', + }), + detected_mempool_nonces: Type.Array(Type.Integer(), { + description: 'Nonces currently in mempool for this address.', + }), + }, + { + title: 'AddressNonces', + description: + 'The latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions', + } +); +export type AddressNonces = Static; + +export const AddressUnlockScheduleSchema = Type.Object( + { + amount: Type.String({ + description: 'Micro-STX amount locked at this block height.', + }), + block_height: Type.Integer(), + }, + { title: 'AddressUnlockSchedule', description: 'Unlock schedule amount and block height' } +); +export type AddressUnlockSchedule = Static; + +export const AddressTokenOfferingLockedSchema = Type.Object( + { + total_locked: Type.String({ + description: 'Micro-STX amount still locked at current block height.', + }), + total_unlocked: Type.String({ + description: 'Micro-STX amount unlocked at current block height.', + }), + unlock_schedule: Type.Array(AddressUnlockScheduleSchema), + }, + { title: 'AddressTokenOfferingLocked', description: 'Token Offering Locked' } +); +export type AddressTokenOfferingLocked = Static; + +export const AddressTransactionSchema = Type.Object( + { + tx: TransactionSchema, + stx_sent: Type.String({ + description: + 'Total sent from the given address, including the tx fee, in micro-STX as an integer string.', + }), + stx_received: Type.String({ + description: 'Total received by the given address in micro-STX as an integer string.', + }), + events: Type.Object({ + stx: Type.Object({ + transfer: Type.Integer(), + mint: Type.Integer(), + burn: Type.Integer(), + }), + ft: Type.Object({ + transfer: Type.Integer(), + mint: Type.Integer(), + burn: Type.Integer(), + }), + nft: Type.Object({ + transfer: Type.Integer(), + mint: Type.Integer(), + burn: Type.Integer(), + }), + }), + }, + { + title: 'AddressTransaction', + description: 'Address transaction with STX, FT and NFT transfer summaries', + } +); +export type AddressTransaction = Static; + +export const AddressTransactionWithTransfersSchema = Type.Object( + { + tx: TransactionSchema, + stx_sent: Type.String({ + description: + 'Total sent from the given address, including the tx fee, in micro-STX as an integer string.', + }), + stx_received: Type.String({ + description: 'Total received by the given address in micro-STX as an integer string.', + }), + stx_transfers: Type.Array( + Type.Object({ + amount: Type.String({ + description: 'Amount transferred in micro-STX as an integer string.', + }), + sender: Type.Optional( + Type.String({ + description: 'Principal that sent STX. This is unspecified if the STX were minted.', + }) + ), + recipient: Type.Optional( + Type.String({ + description: 'Principal that received STX. This is unspecified if the STX were burned.', + }) + ), + }) + ), + ft_transfers: Type.Optional( + Type.Array( + Type.Object({ + amount: Type.String({ + description: + 'Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals.', + }), + asset_identifier: Type.String({ + description: 'Fungible Token asset identifier.', + }), + sender: Type.Optional( + Type.String({ + description: 'Principal that sent the asset.', + }) + ), + recipient: Type.Optional( + Type.String({ + description: 'Principal that received the asset.', + }) + ), + }) + ) + ), + nft_transfers: Type.Optional( + Type.Array( + Type.Object({ + value: Type.Object( + { + hex: Type.String(), + repr: Type.String(), + }, + { description: 'Non Fungible Token asset value.' } + ), + asset_identifier: Type.String({ + description: 'Non Fungible Token asset identifier.', + }), + sender: Type.Optional( + Type.String({ + description: 'Principal that sent the asset.', + }) + ), + recipient: Type.Optional( + Type.String({ + description: 'Principal that received the asset.', + }) + ), + }) + ) + ), + }, + { + title: 'AddressTransactionWithTransfers', + description: 'Transaction with STX transfers for a given address', + } +); +export type AddressTransactionWithTransfers = Static; + +export const AddressTransactionEventSchema = Type.Union( + [ + Type.Object({ + type: Type.Literal('stx'), + event_index: Type.Integer(), + data: Type.Object({ + type: Type.Enum(TransactionEventAssetTypeSchema), + amount: Type.String({ + description: 'Amount transferred in micro-STX as an integer string.', + }), + sender: Type.Optional( + Type.String({ + description: 'Principal that sent STX. This is unspecified if the STX were minted.', + }) + ), + recipient: Type.Optional( + Type.String({ + description: 'Principal that received STX. This is unspecified if the STX were burned.', + }) + ), + }), + }), + Type.Object({ + type: Type.Literal('ft'), + event_index: Type.Integer(), + data: Type.Object({ + type: Type.Enum(TransactionEventAssetTypeSchema), + amount: Type.String({ + description: + 'Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals.', + }), + asset_identifier: Type.String({ + description: 'Fungible Token asset identifier.', + }), + sender: Type.Optional( + Type.String({ + description: 'Principal that sent the asset.', + }) + ), + recipient: Type.Optional( + Type.String({ + description: 'Principal that received the asset.', + }) + ), + }), + }), + Type.Object({ + type: Type.Literal('nft'), + event_index: Type.Integer(), + data: Type.Object({ + type: Type.Enum(TransactionEventAssetTypeSchema), + asset_identifier: Type.String({ + description: 'Non Fungible Token asset identifier.', + }), + value: Type.Object({ + hex: Type.String(), + repr: Type.String(), + }), + sender: Type.Optional( + Type.String({ + description: 'Principal that sent the asset.', + }) + ), + recipient: Type.Optional( + Type.String({ + description: 'Principal that received the asset.', + }) + ), + }), + }), + ], + { title: 'AddressTransactionEvent', description: 'Address Transaction Event' } +); +export type AddressTransactionEvent = Static; + +export const AddressBalanceSchema = Type.Object( + { + stx: StxBalanceSchema, + fungible_tokens: Type.Record(Type.String(), FtBalanceSchema), + non_fungible_tokens: Type.Record(Type.String(), NftBalanceSchema), + token_offering_locked: Type.Optional(AddressTokenOfferingLockedSchema), + }, + { title: 'AddressBalanceResponse', description: 'GET request that returns address balances' } +); +export type AddressBalance = Static; + +enum InboundStxTransferType { + bulkSend = 'bulk-send', + stxTransfer = 'stx-transfer', + stxTransferMemo = 'stx-transfer-memo', +} + +export const InboundStxTransferSchema = Type.Object( + { + sender: Type.String({ + description: 'Principal that sent this transfer', + }), + amount: Type.String({ + description: 'Transfer amount in micro-STX as integer string', + }), + memo: Type.String({ + description: 'Hex encoded memo bytes associated with the transfer', + }), + block_height: Type.Integer({ + description: 'Block height at which this transfer occurred', + }), + tx_id: Type.String({ + description: 'The transaction ID in which this transfer occurred', + }), + transfer_type: Type.Enum(InboundStxTransferType, { + description: + 'Indicates if the transfer is from a stx-transfer transaction or a contract-call transaction', + }), + tx_index: Type.Integer({ + description: 'Index of the transaction within a block', + }), + }, + { title: 'InboundStxTransfer' } +); +export type InboundStxTransfer = Static; diff --git a/src/api/schemas/entities/balances.ts b/src/api/schemas/entities/balances.ts new file mode 100644 index 000000000..cbaef4f3f --- /dev/null +++ b/src/api/schemas/entities/balances.ts @@ -0,0 +1,52 @@ +import { Static, Type } from '@sinclair/typebox'; + +export const FtBalanceSchema = Type.Object( + { + balance: Type.String(), + total_sent: Type.String(), + total_received: Type.String(), + }, + { title: 'FtBalance' } +); +export type FtBalance = Static; + +export const NftBalanceSchema = Type.Object( + { + count: Type.String(), + total_sent: Type.String(), + total_received: Type.String(), + }, + { title: 'NftBalance' } +); +export type NftBalance = Static; + +export const StxBalanceSchema = Type.Object( + { + balance: Type.String(), + total_sent: Type.String(), + total_received: Type.String(), + total_fees_sent: Type.String(), + total_miner_rewards_received: Type.String(), + lock_tx_id: Type.String({ + description: 'The transaction where the lock event occurred. Empty if no tokens are locked.', + }), + locked: Type.String({ + description: + 'The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked.', + }), + lock_height: Type.Integer({ + description: + 'The STX chain block height of when the lock event occurred. Zero if no tokens are locked.', + }), + burnchain_lock_height: Type.Integer({ + description: + 'The burnchain block height of when the lock event occurred. Zero if no tokens are locked.', + }), + burnchain_unlock_height: Type.Integer({ + description: + 'The burnchain block height of when the tokens unlock. Zero if no tokens are locked.', + }), + }, + { title: 'StxBalance' } +); +export type StxBalance = Static; From 6c1da945fb32d808ba2c12ee59ca0782ba7467ec Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 1 Aug 2024 17:54:26 +0200 Subject: [PATCH 13/56] feat: refactor `/extended/v1/search/*` endpoints to fastify --- src/api/init.ts | 12 +- src/api/routes/address.ts | 22 +-- src/api/routes/search.ts | 271 ++++++++++++++------------ src/api/routes/status.ts | 7 + src/api/schemas/entities/addresses.ts | 14 ++ src/api/schemas/entities/search.ts | 91 +++++++++ 6 files changed, 261 insertions(+), 156 deletions(-) create mode 100644 src/api/schemas/entities/search.ts diff --git a/src/api/init.ts b/src/api/init.ts index 2d62d9d9e..795136024 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -12,7 +12,7 @@ import { createCoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; import { BlockRoutes } from './routes/block'; import { createFaucetRouter } from './routes/faucets'; import { AddressRoutes } from './routes/address'; -import { createSearchRouter } from './routes/search'; +import { SearchRoutes } from './routes/search'; import { StxSupplyRoutes } from './routes/stx-supply'; import { createRosettaNetworkRouter } from './routes/rosetta/network'; import { createRosettaMempoolRouter } from './routes/rosetta/mempool'; @@ -210,7 +210,6 @@ export async function startApiServer(opts: { '/v1', (() => { const v1 = express.Router(); - v1.use('/search', createSearchRouter(datastore)); v1.use('/debug', createDebugRouter(datastore)); // These could be defined in one route but a url reporting library breaks with regex in middleware paths @@ -402,12 +401,6 @@ export async function startApiServer(opts: { // Set caching on all routes to be disabled by default, individual routes can override. void reply.header('Cache-Control', 'no-store'); }); - fastify.get('/', async (_, reply) => { - await reply.code(301).redirect('/extended'); - }); - fastify.get('/extended/v1/status', async (_, reply) => { - await reply.code(301).redirect('/extended'); - }); await fastify.register(StatusRoutes); await fastify.register(TxRoutes, { prefix: '/extended/v1/tx' }); await fastify.register(StxSupplyRoutes, { prefix: '/extended/v1/stx_supply' }); @@ -419,6 +412,7 @@ export async function startApiServer(opts: { await fastify.register(BlockRoutes, { prefix: '/extended/v1/block' }); await fastify.register(BurnchainRoutes, { prefix: '/extended/v1/burnchain' }); await fastify.register(AddressRoutes, { prefix: '/extended/v1/address' }); + await fastify.register(SearchRoutes, { prefix: '/extended/v1/search' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -426,7 +420,6 @@ export async function startApiServer(opts: { // Once all `/extended` routes are migrated it will be simplified to something like "only use Express for Rosetta routes". const fastifyPaths = new RegExp( [ - '^/fastify', '^/$', '^/extended$', '^/extended/v1/status', @@ -440,6 +433,7 @@ export async function startApiServer(opts: { '^/extended/v1/block', '^/extended/v1/burnchain', '^/extended/v1/address', + '^/extended/v1/search', ].join('|'), 'i' ); diff --git a/src/api/routes/address.ts b/src/api/routes/address.ts index 051a011f1..791130e4f 100644 --- a/src/api/routes/address.ts +++ b/src/api/routes/address.ts @@ -14,20 +14,19 @@ import { decodeClarityValueToRepr } from 'stacks-encoding-native-js'; import { handleChainTipCache, handleMempoolCache } from '../controllers/cache-controller'; import { PgStore } from '../../datastore/pg-store'; import { logger } from '../../logger'; -import { has0xPrefix, isProdEnv } from '@hirosystems/api-toolkit'; +import { has0xPrefix } from '@hirosystems/api-toolkit'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { Server } from 'node:http'; import { LimitParam, OffsetParam, UnanchoredParamSchema } from '../schemas/params'; -import { StxBalance, StxBalanceSchema } from '../schemas/entities/balances'; import { AddressBalance, AddressBalanceSchema, AddressNonces, AddressNoncesSchema, - AddressTokenOfferingLocked, - AddressTokenOfferingLockedSchema, + AddressStxBalance, + AddressStxBalanceSchema, AddressTransactionWithTransfers, AddressTransactionWithTransfersSchema, InboundStxTransfer, @@ -102,18 +101,7 @@ export const AddressRoutes: FastifyPluginAsync< ), }), response: { - 200: Type.Intersect( - [ - StxBalanceSchema, - Type.Object({ - token_offering_locked: Type.Optional(AddressTokenOfferingLockedSchema), - }), - ], - { - title: 'AddressStxBalanceResponse', - description: 'GET request that returns address balances', - } - ), + 200: AddressStxBalanceSchema, }, }, }, @@ -130,7 +118,7 @@ export const AddressRoutes: FastifyPluginAsync< stxAddress, blockHeight ); - const result: StxBalance & { token_offering_locked?: AddressTokenOfferingLocked } = { + const result: AddressStxBalance = { balance: stxBalanceResult.balance.toString(), total_sent: stxBalanceResult.totalSent.toString(), total_received: stxBalanceResult.totalReceived.toString(), diff --git a/src/api/routes/search.ts b/src/api/routes/search.ts index e794f18da..54d3d9f7e 100644 --- a/src/api/routes/search.ts +++ b/src/api/routes/search.ts @@ -1,5 +1,3 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; import { DbBlock, DbTx, @@ -8,28 +6,29 @@ import { DbSearchResultWithMetadata, } from '../../datastore/common'; import { isValidPrincipal, FoundOrNot } from '../../helpers'; -import { - Block, - SearchResult, - BlockSearchResult, - TxSearchResult, - MempoolTxSearchResult, - ContractSearchResult, - AddressSearchResult, - SearchErrorResult, - AddressStxBalanceResponse, -} from '@stacks/stacks-blockchain-api-types'; import { getTxTypeString, parseDbMempoolTx, parseDbTx, searchHashWithMetadata, } from '../controllers/db-controller'; -import { booleanValueForParam } from '../query-helpers'; -import { PgStore } from '../../datastore/pg-store'; import { has0xPrefix } from '@hirosystems/api-toolkit'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { AddressStxBalance } from '../schemas/entities/addresses'; +import { Block } from '../schemas/entities/block'; +import { + AddressSearchResult, + BlockSearchResult, + ContractSearchResult, + MempoolTxSearchResult, + SearchResult, + SearchResultSchema, + TxSearchResult, +} from '../schemas/entities/search'; -const enum SearchResultType { +enum SearchResultType { TxId = 'tx_id', MempoolTxId = 'mempool_tx_id', BlockHash = 'block_hash', @@ -39,10 +38,18 @@ const enum SearchResultType { InvalidTerm = 'invalid_term', } -export function createSearchRouter(db: PgStore): express.Router { - const router = express.Router(); - - const performSearch = async (term: string, includeMetadata: boolean): Promise => { +export const SearchRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + const performSearch = async ( + term: string, + includeMetadata: boolean + ): Promise< + | { found: true; result: SearchResult } + | { found: false; result: { entity_type: SearchResultType }; error: string } + > => { // Check if term is a 32-byte hash, e.g.: // `0x4ac9b89ec7f2a0ca3b4399888904f171d7bdf3460b1c63ea86c28a83c2feaad8` // `4ac9b89ec7f2a0ca3b4399888904f171d7bdf3460b1c63ea86c28a83c2feaad8` @@ -58,101 +65,84 @@ export function createSearchRouter(db: PgStore): express.Router { found: false, }; if (!includeMetadata) { - queryResult = await db.searchHash({ hash }); + queryResult = await fastify.db.searchHash({ hash }); } else { - queryResult = await searchHashWithMetadata(hash, db); + queryResult = await searchHashWithMetadata(hash, fastify.db); } if (queryResult.found) { if (queryResult.result.entity_type === 'block_hash' && queryResult.result.entity_data) { if (includeMetadata) { const blockData = queryResult.result.entity_data as Block; const blockResult: BlockSearchResult = { - found: true, - result: { - entity_id: queryResult.result.entity_id, - entity_type: SearchResultType.BlockHash, - block_data: { - canonical: blockData.canonical, - hash: blockData.hash, - parent_block_hash: blockData.parent_block_hash, - burn_block_time: blockData.burn_block_time, - height: blockData.height, - }, - metadata: blockData, - }, - }; - return blockResult; - } - const blockData = queryResult.result.entity_data as DbBlock; - const blockResult: BlockSearchResult = { - found: true, - result: { entity_id: queryResult.result.entity_id, entity_type: SearchResultType.BlockHash, block_data: { canonical: blockData.canonical, - hash: blockData.block_hash, + hash: blockData.hash, parent_block_hash: blockData.parent_block_hash, burn_block_time: blockData.burn_block_time, - height: blockData.block_height, + height: blockData.height, }, + metadata: blockData, + }; + return { found: true, result: blockResult }; + } + const blockData = queryResult.result.entity_data as DbBlock; + const blockResult: BlockSearchResult = { + entity_id: queryResult.result.entity_id, + entity_type: SearchResultType.BlockHash, + block_data: { + canonical: blockData.canonical, + hash: blockData.block_hash, + parent_block_hash: blockData.parent_block_hash, + burn_block_time: blockData.burn_block_time, + height: blockData.block_height, }, }; - return blockResult; + return { found: true, result: blockResult }; } else if (queryResult.result.entity_type === 'tx_id') { const txData = queryResult.result.entity_data as DbTx; const txResult: TxSearchResult = { - found: true, - result: { - entity_id: queryResult.result.entity_id, - entity_type: SearchResultType.TxId, - tx_data: { - canonical: txData.canonical, - block_hash: txData.block_hash, - burn_block_time: txData.burn_block_time, - block_height: txData.block_height, - tx_type: getTxTypeString(txData.type_id), - }, + entity_id: queryResult.result.entity_id, + entity_type: SearchResultType.TxId, + tx_data: { + canonical: txData.canonical, + block_hash: txData.block_hash, + burn_block_time: txData.burn_block_time, + block_height: txData.block_height, + tx_type: getTxTypeString(txData.type_id), }, }; if (includeMetadata) { - txResult.result.metadata = parseDbTx( - txData - ) as import('@stacks/stacks-blockchain-api-types').Transaction; + txResult.metadata = parseDbTx(txData); } - return txResult; + return { found: true, result: txResult }; } else if (queryResult.result.entity_type === 'mempool_tx_id') { const txData = queryResult.result.entity_data as DbMempoolTx; const txResult: MempoolTxSearchResult = { - found: true, - result: { - entity_id: queryResult.result.entity_id, - entity_type: SearchResultType.MempoolTxId, - tx_data: { - tx_type: getTxTypeString(txData.type_id), - }, + entity_id: queryResult.result.entity_id, + entity_type: SearchResultType.MempoolTxId, + tx_data: { + tx_type: getTxTypeString(txData.type_id), }, }; if (includeMetadata) { - txResult.result.metadata = parseDbMempoolTx( - txData - ) as import('@stacks/stacks-blockchain-api-types').MempoolTransaction; + txResult.metadata = parseDbMempoolTx(txData); } - return txResult; + return { found: true, result: txResult }; } else { throw new Error( `Unexpected entity_type from db search result: ${queryResult.result.entity_type}` ); } } else { - const unknownResult: SearchErrorResult = { + return { found: false, result: { entity_type: SearchResultType.UnknownHash, }, error: `No block or transaction found with hash "${hash}"`, }; - return unknownResult; } } @@ -161,7 +151,7 @@ export function createSearchRouter(db: PgStore): express.Router { // `ST2TJRHDHMYBQ417HFB0BDX430TQA5PXRX6495G1V.contract-name` const principalCheck = isValidPrincipal(term); if (principalCheck) { - const principalResult = await db.searchPrincipal({ principal: term }); + const principalResult = await fastify.db.searchPrincipal({ principal: term }); const entityType = principalCheck.type === 'contractAddress' ? SearchResultType.ContractAddress @@ -174,79 +164,63 @@ export function createSearchRouter(db: PgStore): express.Router { if ((principalResult.result.entity_data as DbTx).block_hash) { const txData = principalResult.result.entity_data as DbTx; const contractResult: ContractSearchResult = { - found: true, - result: { - entity_id: principalResult.result.entity_id, - entity_type: entityType, - tx_data: { - canonical: txData.canonical, - block_hash: txData.block_hash, - burn_block_time: txData.burn_block_time, - block_height: txData.block_height, - tx_type: getTxTypeString(txData.type_id), - tx_id: txData.tx_id, - }, + entity_id: principalResult.result.entity_id, + entity_type: entityType, + tx_data: { + canonical: txData.canonical, + block_hash: txData.block_hash, + burn_block_time: txData.burn_block_time, + block_height: txData.block_height, + tx_type: getTxTypeString(txData.type_id), + tx_id: txData.tx_id, }, }; if (includeMetadata) { - contractResult.result.metadata = parseDbTx( - txData - ) as import('@stacks/stacks-blockchain-api-types').Transaction; + contractResult.metadata = parseDbTx(txData); } - return contractResult; + return { found: true, result: contractResult }; } else { // Associated tx is a mempool tx const txData = principalResult.result.entity_data as DbMempoolTx; const contractResult: ContractSearchResult = { - found: true, - result: { - entity_id: principalResult.result.entity_id, - entity_type: entityType, - tx_data: { - tx_type: getTxTypeString(txData.type_id), - tx_id: txData.tx_id, - }, + entity_id: principalResult.result.entity_id, + entity_type: entityType, + tx_data: { + tx_type: getTxTypeString(txData.type_id), + tx_id: txData.tx_id, }, }; if (includeMetadata) { - contractResult.result.metadata = parseDbMempoolTx( - txData - ) as import('@stacks/stacks-blockchain-api-types').MempoolTransaction; + contractResult.metadata = parseDbMempoolTx(txData); } - return contractResult; + return { found: true, result: contractResult }; } } else if (entityType === SearchResultType.ContractAddress) { // Contract has no associated tx. // TODO: Can a non-materialized contract principal be an asset transfer recipient? const addrResult: ContractSearchResult = { - found: true, - result: { - entity_id: principalResult.result.entity_id, - entity_type: entityType, - }, + entity_id: principalResult.result.entity_id, + entity_type: entityType, }; - return addrResult; + return { found: true, result: addrResult }; } const addrResult: AddressSearchResult = { - found: true, - result: { - entity_id: principalResult.result.entity_id, - entity_type: entityType, - }, + entity_id: principalResult.result.entity_id, + entity_type: entityType, }; if (includeMetadata) { - const currentBlockHeight = await db.getCurrentBlockHeight(); + const currentBlockHeight = await fastify.db.getCurrentBlockHeight(); if (!currentBlockHeight.found) { throw new Error('No current block'); } const blockHeight = currentBlockHeight.result + 1; - const stxBalanceResult = await db.getStxBalanceAtBlock( + const stxBalanceResult = await fastify.db.getStxBalanceAtBlock( principalResult.result.entity_id, blockHeight ); - const result: AddressStxBalanceResponse = { + const result: AddressStxBalance = { balance: stxBalanceResult.balance.toString(), total_sent: stxBalanceResult.totalSent.toString(), total_received: stxBalanceResult.totalReceived.toString(), @@ -258,9 +232,9 @@ export function createSearchRouter(db: PgStore): express.Router { burnchain_lock_height: stxBalanceResult.burnchainLockHeight, burnchain_unlock_height: stxBalanceResult.burnchainUnlockHeight, }; - addrResult.result.metadata = result; + addrResult.metadata = result; } - return addrResult; + return { found: true, result: addrResult }; } else { return { found: false, @@ -277,21 +251,58 @@ export function createSearchRouter(db: PgStore): express.Router { }; }; - router.get( - '/:term', - asyncHandler(async (req, res, next) => { - const { term: rawTerm } = req.params; - const includeMetadata = booleanValueForParam(req, res, next, 'include_metadata'); + fastify.get( + '/:id', + { + schema: { + operationId: 'search_by_id', + summary: 'Search', + description: `Search blocks, transactions, contracts, or accounts by hash/ID`, + tags: ['Search'], + params: Type.Object({ + id: Type.String({ + description: + 'The hex hash string for a block or transaction, account address, or contract address', + examples: ['0xcf8b233f19f6c07d2dc1963302d2436efd36e9afac127bf6582824a13961c06d'], + }), + }), + querystring: Type.Object({ + include_metadata: Type.Optional( + Type.Boolean({ + description: 'This includes the detailed data for purticular hash in the response', + default: false, + }) + ), + }), + response: { + 200: Type.Object({ + found: Type.Literal(true), + result: SearchResultSchema, + }), + 404: Type.Object({ + found: Type.Literal(false), + result: Type.Object({ + entity_type: Type.Enum(SearchResultType), + }), + error: Type.String(), + }), + }, + }, + }, + async (req, reply) => { + const { id: rawTerm } = req.params; + const includeMetadata = req.query.include_metadata ?? false; const term = rawTerm.trim(); - const searchResult = await db.sqlTransaction(async sql => { + const searchResult = await fastify.db.sqlTransaction(async sql => { return await performSearch(term, includeMetadata); }); - if (!searchResult.found) { - res.status(404); + if (searchResult.found) { + await reply.send(searchResult); + } else { + await reply.status(404).send(searchResult); } - res.json(searchResult); - }) + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/status.ts b/src/api/routes/status.ts index c07ce45c0..fcb6cb262 100644 --- a/src/api/routes/status.ts +++ b/src/api/routes/status.ts @@ -58,5 +58,12 @@ export const StatusRoutes: FastifyPluginAsync< await reply.send(await getStatus()); }); + fastify.get('/', async (_, reply) => { + await reply.code(301).redirect('/extended'); + }); + fastify.get('/extended/v1/status', async (_, reply) => { + await reply.code(301).redirect('/extended'); + }); + await Promise.resolve(); }; diff --git a/src/api/schemas/entities/addresses.ts b/src/api/schemas/entities/addresses.ts index f9cf08c68..2c449afa6 100644 --- a/src/api/schemas/entities/addresses.ts +++ b/src/api/schemas/entities/addresses.ts @@ -302,3 +302,17 @@ export const InboundStxTransferSchema = Type.Object( { title: 'InboundStxTransfer' } ); export type InboundStxTransfer = Static; + +export const AddressStxBalanceSchema = Type.Intersect( + [ + StxBalanceSchema, + Type.Object({ + token_offering_locked: Type.Optional(AddressTokenOfferingLockedSchema), + }), + ], + { + title: 'AddressStxBalance', + description: 'GET request that returns address balances', + } +); +export type AddressStxBalance = Static; diff --git a/src/api/schemas/entities/search.ts b/src/api/schemas/entities/search.ts new file mode 100644 index 000000000..53fd0c031 --- /dev/null +++ b/src/api/schemas/entities/search.ts @@ -0,0 +1,91 @@ +import { Static, Type } from '@sinclair/typebox'; +import { AddressStxBalanceSchema } from './addresses'; +import { BlockSchema } from './block'; +import { TransactionSchema } from './transactions'; +import { MempoolTransactionSchema } from './mempool-transactions'; + +export const AddressSearchResultSchema = Type.Object( + { + entity_id: Type.String({ description: 'The id used to search this query.' }), + entity_type: Type.Literal('standard_address'), + metadata: Type.Optional(AddressStxBalanceSchema), + }, + { title: 'AddressSearchResult', description: 'Address search result' } +); +export type AddressSearchResult = Static; + +export const BlockSearchResultSchema = Type.Object( + { + entity_id: Type.String({ description: 'The id used to search this query.' }), + entity_type: Type.Literal('block_hash'), + block_data: Type.Object({ + canonical: Type.Boolean(), + hash: Type.String(), + parent_block_hash: Type.String(), + burn_block_time: Type.Integer(), + height: Type.Integer(), + }), + metadata: Type.Optional(BlockSchema), + }, + { title: 'BlockSearchResult', description: 'Block search result' } +); +export type BlockSearchResult = Static; + +export const ContractSearchResultSchema = Type.Object( + { + entity_id: Type.String({ description: 'The id used to search this query.' }), + entity_type: Type.Literal('contract_address'), + tx_data: Type.Optional( + Type.Object({ + canonical: Type.Optional(Type.Boolean()), + block_hash: Type.Optional(Type.String()), + burn_block_time: Type.Optional(Type.Integer()), + block_height: Type.Optional(Type.Integer()), + tx_type: Type.String(), + tx_id: Type.String(), + }) + ), + metadata: Type.Optional(Type.Union([TransactionSchema, MempoolTransactionSchema])), + }, + { title: 'ContractSearchResult', description: 'Contract search result' } +); +export type ContractSearchResult = Static; + +export const MempoolTxSearchResultSchema = Type.Object( + { + entity_id: Type.String({ description: 'The id used to search this query.' }), + entity_type: Type.Literal('mempool_tx_id'), + tx_data: Type.Object({ + tx_type: Type.String(), + }), + metadata: Type.Optional(MempoolTransactionSchema), + }, + { title: 'MempoolTxSearchResult', description: 'Mempool transaction search result' } +); +export type MempoolTxSearchResult = Static; + +export const TxSearchResultSchema = Type.Object( + { + entity_id: Type.String({ description: 'The id used to search this query.' }), + entity_type: Type.Literal('tx_id'), + tx_data: Type.Object({ + canonical: Type.Boolean(), + block_hash: Type.String(), + burn_block_time: Type.Integer(), + block_height: Type.Integer(), + tx_type: Type.String(), + }), + metadata: Type.Optional(TransactionSchema), + }, + { title: 'TxSearchResult', description: 'Transaction search result' } +); +export type TxSearchResult = Static; + +export const SearchResultSchema = Type.Union([ + AddressSearchResultSchema, + BlockSearchResultSchema, + ContractSearchResultSchema, + MempoolTxSearchResultSchema, + TxSearchResultSchema, +]); +export type SearchResult = Static; From b8d0f62874a9f6f5a74b6b97d83f02e705394db4 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 1 Aug 2024 19:31:09 +0200 Subject: [PATCH 14/56] feat: refactor `/extended/v1/pox*` endpoints to fastify --- src/api/init.ts | 21 +-- src/api/routes/pox.ts | 232 +++++++++++++++++++++----------- src/api/schemas/entities/pox.ts | 27 ++++ 3 files changed, 186 insertions(+), 94 deletions(-) create mode 100644 src/api/schemas/entities/pox.ts diff --git a/src/api/init.ts b/src/api/init.ts index 795136024..8e0f94c6a 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -40,7 +40,7 @@ import * as fs from 'fs'; import { PgStore } from '../datastore/pg-store'; import { PgWriteStore } from '../datastore/pg-write-store'; import { WebSocketTransmitter } from './routes/ws/web-socket-transmitter'; -import { createPoxEventsRouter } from './routes/pox'; +import { PoxEventRoutes, PoxRoutes } from './routes/pox'; import { logger, loggerMiddleware } from '../logger'; import { PINO_LOGGER_CONFIG, @@ -211,22 +211,6 @@ export async function startApiServer(opts: { (() => { const v1 = express.Router(); v1.use('/debug', createDebugRouter(datastore)); - - // These could be defined in one route but a url reporting library breaks with regex in middleware paths - v1.use('/pox2', createPoxEventsRouter(datastore, 'pox2')); - v1.use('/pox3', createPoxEventsRouter(datastore, 'pox3')); - v1.use('/pox4', createPoxEventsRouter(datastore, 'pox4')); - const legacyPoxPathRouter: express.RequestHandler = (req, res) => { - // Redirect old pox routes paths to new one above - const newPath = req.path === '/' ? '/events' : req.path; - const baseUrl = req.baseUrl.replace(/(pox[\d])_events/, '$1'); - const redirectPath = `${baseUrl}${newPath}${getReqQuery(req)}`; - return res.redirect(redirectPath); - }; - v1.use('/pox2_events', legacyPoxPathRouter); - v1.use('/pox3_events', legacyPoxPathRouter); - v1.use('/pox4_events', legacyPoxPathRouter); - if (getChainIDNetwork(chainId) === 'testnet' && writeDatastore) { v1.use('/faucets', createFaucetRouter(writeDatastore)); } @@ -413,6 +397,8 @@ export async function startApiServer(opts: { await fastify.register(BurnchainRoutes, { prefix: '/extended/v1/burnchain' }); await fastify.register(AddressRoutes, { prefix: '/extended/v1/address' }); await fastify.register(SearchRoutes, { prefix: '/extended/v1/search' }); + await fastify.register(PoxRoutes, { prefix: '/extended/v1/:pox(pox\\d)' }); + await fastify.register(PoxEventRoutes, { prefix: '/extended/v1/:(pox\\d_events)' }); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -434,6 +420,7 @@ export async function startApiServer(opts: { '^/extended/v1/burnchain', '^/extended/v1/address', '^/extended/v1/search', + '^/extended/v1/pox', ].join('|'), 'i' ); diff --git a/src/api/routes/pox.ts b/src/api/routes/pox.ts index e03186b46..1a5b74d35 100644 --- a/src/api/routes/pox.ts +++ b/src/api/routes/pox.ts @@ -1,40 +1,66 @@ -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; -import { PgStore } from '../../datastore/pg-store'; import { parsePoxSyntheticEvent } from '../controllers/db-controller'; -import { - getBlockHeightQueryParam, - getBlockParams, - validatePrincipal, - validateRequestHexInput, -} from '../query-helpers'; -import { getETagCacheHandler, setETagCacheHeaders } from '../controllers/cache-controller'; -import { PoolDelegationsResponse } from '@stacks/stacks-blockchain-api-types'; +import { getBlockParams, validatePrincipal, validateRequestHexInput } from '../query-helpers'; +import { handleChainTipCache } from '../controllers/cache-controller'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam, UnanchoredParamSchema } from '../schemas/params'; +import { NotFoundError } from 'src/errors'; +import { PaginatedResponse } from '../schemas/util'; +import { PoolDelegation, PoolDelegationSchema } from '../schemas/entities/pox'; -export function createPoxEventsRouter( - db: PgStore, - poxVersion: 'pox2' | 'pox3' | 'pox4' -): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); +export const PoxEventRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get('/', async (req, reply) => { + // Redirect old pox routes, e.g. /poxX_events to /poxX/events + const redirectUrl = req.url.replace(/(pox[\d])_events/, '$1/events'); + return reply.redirect(redirectUrl); + }); + await Promise.resolve(); +}; - const poxTable = ( - { - pox2: 'pox2_events', - pox3: 'pox3_events', - pox4: 'pox4_events', - } as const - )[poxVersion]; +export const PoxRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + const poxTables = { + pox2: 'pox2_events', + pox3: 'pox3_events', + pox4: 'pox4_events', + } as const; - router.get( + fastify.get( '/events', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + // operationId: '', + summary: 'Get latest PoX events', + // description: ``, + tags: ['Stacking'], + params: Type.Object({ + pox: Type.Enum({ pox2: 'pox2', pox3: 'pox3', pox4: 'pox4' }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Pox2Event), + offset: OffsetParam(), + }), + response: { + 200: Type.Any(), + }, + }, + }, + async (req, reply) => { const limit = getPagingQueryLimit(ResourceType.Pox2Event, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); + const poxTable = poxTables[req.params.pox]; - const queryResults = await db.getPoxSyntheticEvents({ + const queryResults = await fastify.db.getPoxSyntheticEvents({ offset, limit, poxTable, @@ -45,92 +71,147 @@ export function createPoxEventsRouter( offset, results: parsedResult, }; - setETagCacheHeaders(res); - res.json(response); - }) + await reply.send(response); + } ); - router.get( + fastify.get( '/tx/:tx_id', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + // operationId: '', + summary: 'Get PoX events for a transaction', + // description: ``, + tags: ['Stacking'], + params: Type.Object({ + pox: Type.Enum({ pox2: 'pox2', pox3: 'pox3', pox4: 'pox4' }), + tx_id: Type.String(), + }), + response: { + 200: Type.Any(), + }, + }, + }, + async (req, reply) => { const { tx_id } = req.params; + const poxTable = poxTables[req.params.pox]; validateRequestHexInput(tx_id); - const queryResults = await db.getPoxSyntheticEventsForTx({ + const queryResults = await fastify.db.getPoxSyntheticEventsForTx({ txId: tx_id, poxTable, }); if (!queryResults.found) { - res.status(404).json({ error: `could not find transaction by ID ${tx_id}` }); - return; + throw new NotFoundError(`could not find transaction by ID`); } const parsedResult = queryResults.result.map(r => parsePoxSyntheticEvent(r)); const response = { results: parsedResult, }; - setETagCacheHeaders(res); - res.json(response); - }) + await reply.send(response); + } ); - router.get( + fastify.get( '/stacker/:principal', - cacheHandler, - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + // operationId: '', + summary: 'Get events for a stacking address', + // description: ``, + tags: ['Stacking'], + params: Type.Object({ + pox: Type.Enum({ pox2: 'pox2', pox3: 'pox3', pox4: 'pox4' }), + principal: Type.String(), + }), + response: { + 200: Type.Any(), + }, + }, + }, + async (req, reply) => { const { principal } = req.params; + const poxTable = poxTables[req.params.pox]; validatePrincipal(principal); - const queryResults = await db.getPoxSyntheticEventsForStacker({ + const queryResults = await fastify.db.getPoxSyntheticEventsForStacker({ principal, poxTable, }); if (!queryResults.found) { - res.status(404).json({ error: `could not find principal ${principal}` }); - return; + throw new NotFoundError(`could not find principal`); } const parsedResult = queryResults.result.map(r => parsePoxSyntheticEvent(r)); const response = { results: parsedResult, }; - setETagCacheHeaders(res); - res.json(response); - }) + await reply.send(response); + } ); - router.get( + fastify.get( '/:pool_principal/delegations', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_pool_delegations', + summary: 'Stacking pool members', + description: `Retrieves the list of stacking pool members for a given delegator principal.`, + tags: ['Stacking'], + params: Type.Object({ + pox: Type.Enum({ pox2: 'pox2', pox3: 'pox3', pox4: 'pox4' }), + pool_principal: Type.String({ + description: 'Address principal of the stacking pool delegator', + examples: ['SPSCWDV3RKV5ZRN1FQD84YE1NQFEDJ9R1F4DYQ11'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Stacker), + offset: OffsetParam(), + after_block: Type.Optional( + Type.Integer({ + minimum: 1, + description: + 'If specified, only delegation events after the given block will be included', + }) + ), + height: Type.Optional(Type.Integer({ minimum: 1 })), + unanchored: Type.Optional(UnanchoredParamSchema), + }), + response: { + 200: PaginatedResponse(PoolDelegationSchema), + }, + }, + }, + async (req, reply) => { // get recent asset event associated with address - const poolPrincipal = req.params['pool_principal']; + const poolPrincipal = req.params.pool_principal; validatePrincipal(poolPrincipal); + const poxTable = poxTables[req.params.pox]; + const limit = getPagingQueryLimit(ResourceType.Stacker, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const afterBlock = getBlockHeightQueryParam('after_block', false, req, res, next) || 0; + const afterBlock = req.query.after_block ?? 0; - const response = await db.sqlTransaction(async sql => { - const blockParams = getBlockParams( - req.query.height ? parseInt(req.query.height as string) : undefined, - req.query.unnachored ? req.query.unnachored === 'true' : undefined - ); + const response = await fastify.db.sqlTransaction(async sql => { + const blockParams = getBlockParams(req.query.height, req.query.unanchored); let blockHeight: number; if (blockParams.blockHeight !== undefined) { blockHeight = blockParams.blockHeight; } else { - blockHeight = await db.getMaxBlockHeight(sql, { + blockHeight = await fastify.db.getMaxBlockHeight(sql, { includeUnanchored: blockParams.includeUnanchored ?? false, }); } - const dbBlock = await db.getBlockByHeightInternal(sql, blockHeight); + const dbBlock = await fastify.db.getBlockByHeightInternal(sql, blockHeight); if (!dbBlock.found) { - const error = `no block at height: ${blockHeight}`; - res.status(404).json({ error: error }); - throw new Error(error); + throw new NotFoundError(`no block at height: ${blockHeight}`); } const burnBlockHeight = dbBlock.result.burn_block_height; - const stackersQuery = await db.getPoxPoolDelegations({ + const stackersQuery = await fastify.db.getPoxPoolDelegations({ delegator: poolPrincipal, blockHeight, burnBlockHeight, @@ -140,23 +221,20 @@ export function createPoxEventsRouter( poxTable, }); if (!stackersQuery.found) { - const error = `no stackers found`; - res.status(404).json({ error: error }); - throw new Error(error); + throw new NotFoundError(`no stackers found`); } - - const response: PoolDelegationsResponse = { + const results: PoolDelegation[] = stackersQuery.result.stackers; + return { limit, offset, total: stackersQuery.result.total, - results: stackersQuery.result.stackers, + results, }; - return response; }); - setETagCacheHeaders(res); - res.json(response); - }) + + await reply.send(response); + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/schemas/entities/pox.ts b/src/api/schemas/entities/pox.ts new file mode 100644 index 000000000..56636ed40 --- /dev/null +++ b/src/api/schemas/entities/pox.ts @@ -0,0 +1,27 @@ +import { Static, Type } from '@sinclair/typebox'; + +export const PoolDelegationSchema = Type.Object({ + stacker: Type.String({ + description: 'The principal of the pool member that issued the delegation', + }), + pox_addr: Type.Optional( + Type.String({ + description: 'The pox-addr value specified by the stacker in the delegation operation', + }) + ), + amount_ustx: Type.String({ + description: 'The amount of uSTX delegated by the stacker', + }), + burn_block_unlock_height: Type.Optional( + Type.Integer({ + description: 'The optional burnchain block unlock height that the stacker may have specified', + }) + ), + block_height: Type.Integer({ + description: 'The block height at which the stacker delegation transaction was mined at', + }), + tx_id: Type.String({ + description: 'The tx_id of the stacker delegation operation', + }), +}); +export type PoolDelegation = Static; From 1121095ac21821332d0ee9337d15144b5a889043 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Fri, 2 Aug 2024 11:04:20 +0200 Subject: [PATCH 15/56] feat: refactor `/extended/v1/faucets/*` endpoints to fastify --- src/api/init.ts | 43 +++--- src/api/routes/faucets.ts | 282 ++++++++++++++++++++++++++++++-------- src/btc-faucet.ts | 2 +- src/errors.ts | 1 + 4 files changed, 252 insertions(+), 76 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index 8e0f94c6a..37521ec41 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -10,7 +10,7 @@ import { InfoRoutes } from './routes/info'; import { ContractRoutes } from './routes/contract'; import { createCoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; import { BlockRoutes } from './routes/block'; -import { createFaucetRouter } from './routes/faucets'; +import { FaucetRoutes } from './routes/faucets'; import { AddressRoutes } from './routes/address'; import { SearchRoutes } from './routes/search'; import { StxSupplyRoutes } from './routes/stx-supply'; @@ -166,10 +166,6 @@ export async function startApiServer(opts: { // See https://expressjs.com/en/api.html#etag.options.table app.set('etag', false); - app.get('/', (req, res) => { - res.redirect(`/extended/`); - }); - app.use('/doc', (req, res) => { // if env variable for API_DOCS_URL is given if (apiDocumentationUrl) { @@ -211,9 +207,6 @@ export async function startApiServer(opts: { (() => { const v1 = express.Router(); v1.use('/debug', createDebugRouter(datastore)); - if (getChainIDNetwork(chainId) === 'testnet' && writeDatastore) { - v1.use('/faucets', createFaucetRouter(writeDatastore)); - } return v1; })() ); @@ -385,20 +378,27 @@ export async function startApiServer(opts: { // Set caching on all routes to be disabled by default, individual routes can override. void reply.header('Cache-Control', 'no-store'); }); + await fastify.register(StatusRoutes); - await fastify.register(TxRoutes, { prefix: '/extended/v1/tx' }); - await fastify.register(StxSupplyRoutes, { prefix: '/extended/v1/stx_supply' }); - await fastify.register(InfoRoutes, { prefix: '/extended/v1/info' }); - await fastify.register(TokenRoutes, { prefix: '/extended/v1/tokens' }); - await fastify.register(ContractRoutes, { prefix: '/extended/v1/contract' }); - await fastify.register(FeeRateRoutes, { prefix: '/extended/v1/fee_rate' }); - await fastify.register(MicroblockRoutes, { prefix: '/extended/v1/microblock' }); - await fastify.register(BlockRoutes, { prefix: '/extended/v1/block' }); - await fastify.register(BurnchainRoutes, { prefix: '/extended/v1/burnchain' }); - await fastify.register(AddressRoutes, { prefix: '/extended/v1/address' }); - await fastify.register(SearchRoutes, { prefix: '/extended/v1/search' }); - await fastify.register(PoxRoutes, { prefix: '/extended/v1/:pox(pox\\d)' }); - await fastify.register(PoxEventRoutes, { prefix: '/extended/v1/:(pox\\d_events)' }); + await fastify.register( + async fastify => { + await fastify.register(TxRoutes, { prefix: '/tx' }); + await fastify.register(StxSupplyRoutes, { prefix: '/stx_supply' }); + await fastify.register(InfoRoutes, { prefix: '/info' }); + await fastify.register(TokenRoutes, { prefix: '/tokens' }); + await fastify.register(ContractRoutes, { prefix: '/contract' }); + await fastify.register(FeeRateRoutes, { prefix: '/fee_rate' }); + await fastify.register(MicroblockRoutes, { prefix: '/microblock' }); + await fastify.register(BlockRoutes, { prefix: '/block' }); + await fastify.register(BurnchainRoutes, { prefix: '/burnchain' }); + await fastify.register(AddressRoutes, { prefix: '/address' }); + await fastify.register(SearchRoutes, { prefix: '/search' }); + await fastify.register(PoxRoutes, { prefix: '/:pox(pox\\d)' }); + await fastify.register(PoxEventRoutes, { prefix: '/:(pox\\d_events)' }); + await fastify.register(FaucetRoutes, { prefix: '/faucets' }); + }, + { prefix: '/extended/v1' } + ); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -421,6 +421,7 @@ export async function startApiServer(opts: { '^/extended/v1/address', '^/extended/v1/search', '^/extended/v1/pox', + '^/extended/v1/faucets', ].join('|'), 'i' ); diff --git a/src/api/routes/faucets.ts b/src/api/routes/faucets.ts index 6a3f5956a..b2aee775e 100644 --- a/src/api/routes/faucets.ts +++ b/src/api/routes/faucets.ts @@ -1,6 +1,4 @@ import * as process from 'process'; -import * as express from 'express'; -import { asyncHandler } from '../async-handler'; import * as btc from 'bitcoinjs-lib'; import PQueue from 'p-queue'; import { BigNumber } from 'bignumber.js'; @@ -11,15 +9,22 @@ import { StacksTransaction, } from '@stacks/transactions'; import { StacksNetwork, StacksTestnet } from '@stacks/network'; -import { makeBtcFaucetPayment, getBtcBalance } from '../../btc-faucet'; +import { + makeBtcFaucetPayment, + getBtcBalance, + getRpcClient, + isValidBtcAddress, +} from '../../btc-faucet'; import { DbFaucetRequestCurrency } from '../../datastore/common'; -import { intMax, stxToMicroStx } from '../../helpers'; +import { getChainIDNetwork, intMax, stxToMicroStx } from '../../helpers'; import { testnetKeys, getStacksTestnetNetwork } from './debug'; import { StacksCoreRpcClient } from '../../core-rpc/client'; -import { RunFaucetResponse } from '@stacks/stacks-blockchain-api-types'; -import { PgWriteStore } from '../../datastore/pg-write-store'; -import { BtcFaucetConfigError } from '../../errors'; import { logger } from '../../logger'; +import { FastifyPluginAsync, preHandlerHookHandler } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { fastifyFormbody } from '@fastify/formbody'; +import { Server } from 'node:http'; +import { OptionalNullable } from '../schemas/util'; export function getStxFaucetNetworks(): StacksNetwork[] { const networks: StacksNetwork[] = [getStacksTestnetNetwork()]; @@ -63,36 +68,114 @@ function clientFromNetwork(network: StacksNetwork): StacksCoreRpcClient { return new StacksCoreRpcClient({ host: coreUrl.hostname, port: coreUrl.port }); } -export function createFaucetRouter(db: PgWriteStore): express.Router { - const router = express.Router(); - router.use(express.urlencoded({ extended: true })); - router.use(express.json()); - const missingBtcConfigMiddleware = ( - err: Error, - req: express.Request, - res: express.Response, - next: express.NextFunction - ) => { - if (err instanceof BtcFaucetConfigError) { - res.status(403).json({ error: err.message, success: false }); +export const FaucetRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + await fastify.register(fastifyFormbody); + + // Middleware to ensure faucet is enabled + fastify.addHook('preHandler', (_req, reply, done) => { + if (getChainIDNetwork(fastify.chainId) === 'testnet' && fastify.writeDb) { + done(); } else { - next(err); + return reply.status(403).send({ + error: 'Faucet is not enabled', + success: false, + }); + } + }); + + const missingBtcConfigMiddleware: preHandlerHookHandler = (_req, reply, done) => { + try { + getRpcClient(); + done(); + } catch (err) { + return reply.status(403).send({ + error: (err as Error).message, + success: false, + }); } }; const btcFaucetRequestQueue = new PQueue({ concurrency: 1 }); - router.post( + fastify.post( '/btc', - asyncHandler(async (req, res) => { + { + preHandler: missingBtcConfigMiddleware, + schema: { + operationId: 'run_faucet_btc', + summary: 'Add testnet BTC tokens to address', + description: `Add 1 BTC token to the specified testnet BTC address. + + The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block + explorer. The tokens are delivered once the transaction has been included in a block. + + **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet.`, + tags: ['Faucets'], + querystring: Type.Object({ + address: Type.Optional( + Type.String({ + description: 'A valid testnet BTC address', + examples: ['2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts'], + }) + ), + }), + body: OptionalNullable( + Type.Object({ + address: Type.Optional( + Type.String({ + description: 'A valid testnet BTC address', + examples: ['2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts'], + }) + ), + }) + ), + response: { + 200: Type.Object( + { + success: Type.Literal(true, { + description: 'Indicates if the faucet call was successful', + }), + txid: Type.String({ description: 'The transaction ID for the faucet call' }), + raw_tx: Type.String({ description: 'Raw transaction in hex string representation' }), + }, + { + title: 'RunFaucetResponse', + description: + 'POST request that initiates a transfer of tokens to a specified testnet address', + } + ), + '4xx': Type.Object({ + success: Type.Literal(false), + error: Type.String({ description: 'Error message' }), + }), + }, + }, + }, + async (req, reply) => { await btcFaucetRequestQueue.add(async () => { - const address: string = req.query.address || req.body.address; + const address = req.query.address || req.body?.address; + if (!address) { + return await reply.status(400).send({ + error: 'address required', + success: false, + }); + } + if (!isValidBtcAddress(btc.networks.regtest, address)) { + return await reply.status(400).send({ + error: 'Invalid BTC regtest address', + success: false, + }); + } const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; // Guard condition: requests are limited to 5 times per 5 minutes. // Only based on address for now, but we're keeping the IP in case // we want to escalate and implement a per IP policy - const lastRequests = await db.getBTCFaucetRequests(address); + const lastRequests = await fastify.db.getBTCFaucetRequests(address); const now = Date.now(); const window = 5 * 60 * 1000; // 5 minutes const requestsInWindow = lastRequests.results @@ -100,39 +183,59 @@ export function createFaucetRouter(db: PgWriteStore): express.Router { .filter(r => r <= window); if (requestsInWindow.length >= 5) { logger.warn(`BTC faucet rate limit hit for address ${address}`); - res.status(429).json({ + return await reply.status(429).send({ error: 'Too many requests', success: false, }); - return; } const tx = await makeBtcFaucetPayment(btc.networks.regtest, address, 0.5); - await db.insertFaucetRequest({ + await fastify.writeDb?.insertFaucetRequest({ ip: `${ip}`, address: address, currency: DbFaucetRequestCurrency.BTC, occurred_at: now, }); - res.json({ + await reply.send({ txid: tx.txId, raw_tx: tx.rawTx, success: true, }); }); - }), - missingBtcConfigMiddleware + } ); - router.get( + fastify.get( '/btc/:address', - asyncHandler(async (req, res) => { + { + preHandler: missingBtcConfigMiddleware, + schema: { + operationId: 'get_btc_balance', + summary: 'Get BTC balance for address', + tags: ['Faucets'], + params: Type.Object({ + address: Type.String({ + description: 'A valid testnet BTC address', + examples: ['2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts'], + }), + }), + response: { + 200: Type.Object({ + balance: Type.Number({ description: 'Address balance in BTC' }), + }), + '4xx': Type.Object({ + success: Type.Literal(false), + error: Type.String({ description: 'Error message' }), + }), + }, + }, + }, + async (req, reply) => { const { address } = req.params; const balance = await getBtcBalance(btc.networks.regtest, address); - res.json({ balance }); - }), - missingBtcConfigMiddleware + await reply.send({ balance }); + } ); const stxFaucetRequestQueue = new PQueue({ concurrency: 1 }); @@ -147,26 +250,101 @@ export function createFaucetRouter(db: PgWriteStore): express.Router { const STX_FAUCET_NETWORKS = getStxFaucetNetworks(); const STX_FAUCET_KEYS = (process.env.FAUCET_PRIVATE_KEY ?? testnetKeys[0].secretKey).split(','); - router.post( + fastify.post( '/stx', - asyncHandler(async (req, res) => { - if (!req.query.address && req.body.address) { + { + schema: { + operationId: 'run_faucet_stx', + summary: 'Get STX testnet tokens', + description: `Add 500 STX tokens to the specified testnet address. Testnet STX addresses begin with \`ST\`. If the \`stacking\` + parameter is set to \`true\`, the faucet will add the required number of tokens for individual stacking to the + specified testnet address. + + The endpoint returns the transaction ID, which you can use to view the transaction in the + [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has + been included in an anchor block. + + A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing + failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat). + + **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet.`, + tags: ['Faucets'], + querystring: Type.Object({ + address: Type.Optional( + Type.String({ + description: 'A valid testnet STX address', + examples: ['ST3M7N9Q9HDRM7RVP1Q26P0EE69358PZZAZD7KMXQ'], + }) + ), + stacking: Type.Optional( + Type.Boolean({ + description: + 'Request the amount of STX tokens needed for individual address stacking', + default: false, + }) + ), + }), + body: OptionalNullable( + Type.Object({ + address: Type.Optional( + Type.String({ + description: + '[Deprecated -- use query param rather than POST body] A valid testnet STX address', + examples: ['ST3M7N9Q9HDRM7RVP1Q26P0EE69358PZZAZD7KMXQ'], + }) + ), + }) + ), + response: { + 200: Type.Object( + { + success: Type.Literal(true, { + description: 'Indicates if the faucet call was successful', + }), + txId: Type.String({ description: 'The transaction ID for the faucet call' }), + txRaw: Type.String({ description: 'Raw transaction in hex string representation' }), + }, + { + title: 'RunFaucetResponse', + description: + 'POST request that initiates a transfer of tokens to a specified testnet address', + } + ), + '4xx': Type.Object({ + success: Type.Literal(false, { + description: 'Indicates if the faucet call was successful', + }), + error: Type.String({ description: 'Error message' }), + help: Type.Optional(Type.String()), + }), + }, + }, + }, + async (req, reply) => { + if (!req.query.address && req.body?.address) { // return error for no longer supported post body requests - const url = new URL(`${req.protocol}://${req.get('host')}${req.originalUrl}`); + const url = new URL(`${req.protocol}://${req.hostname}${req.url}`); url.search = new URLSearchParams(req.body).toString(); - res.status(400).json({ + return reply.status(400).send({ error: `POST body is no longer supported, parameters must be passed as query parameters, e.g. ${url}`, help: `Example curl request: curl -X POST '${url}'`, success: false, }); - return; } + + const address = req.query.address; + if (!address) { + return await reply.status(400).send({ + error: 'address required', + success: false, + }); + } + await stxFaucetRequestQueue.add(async () => { - const address: string = req.query.address as string; const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; - const lastRequests = await db.getSTXFaucetRequests(address); + const lastRequests = await fastify.db.getSTXFaucetRequests(address); - const isStackingReq = req.query['stacking'] === 'true'; + const isStackingReq = req.query.stacking ?? false; // Guard condition: requests are limited to x times per y minutes. // Only based on address for now, but we're keeping the IP in case @@ -181,11 +359,10 @@ export function createFaucetRouter(db: PgWriteStore): express.Router { .filter(r => r <= window); if (requestsInWindow.length >= triggerCount) { logger.warn(`STX faucet rate limit hit for address ${address}`); - res.status(429).json({ + return await reply.status(429).send({ error: 'Too many requests', success: false, }); - return; } const stxAmounts: bigint[] = []; @@ -329,23 +506,20 @@ export function createFaucetRouter(db: PgWriteStore): express.Router { throw new Error(`Unexpected failure to send or capture error`); } } else { - const response: RunFaucetResponse = { + await reply.send({ success: true, txId: sendSuccess.txId, txRaw: sendSuccess.txRaw, - }; - res.json(response); + }); } - await db.insertFaucetRequest({ + await fastify.writeDb?.insertFaucetRequest({ ip: `${ip}`, address: address, currency: DbFaucetRequestCurrency.STX, occurred_at: now, }); }); - }) + } ); - - return router; -} +}; diff --git a/src/btc-faucet.ts b/src/btc-faucet.ts index 58d23f92d..44b29bf05 100644 --- a/src/btc-faucet.ts +++ b/src/btc-faucet.ts @@ -72,7 +72,7 @@ const REGTEST_FEE_RATE = 50; const MIN_TX_CONFIRMATIONS = 1; -function isValidBtcAddress(network: btc.Network, address: string): boolean { +export function isValidBtcAddress(network: btc.Network, address: string): boolean { try { btc.initEccLib(ecc); btc.address.toOutputScript(address, network); diff --git a/src/errors.ts b/src/errors.ts index 46a083505..8fb0d6f51 100644 --- a/src/errors.ts +++ b/src/errors.ts @@ -14,6 +14,7 @@ export enum InvalidRequestErrorType { invalid_param = 'Invalid param', invalid_address = 'Invalid address', invalid_query = 'Invalid query', + forbidden = 'Forbidden', } export class InvalidRequestError extends Error { type: InvalidRequestErrorType; From fd68b75854ef5f287936e7062b4d32d0864215e1 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Fri, 2 Aug 2024 13:26:36 +0200 Subject: [PATCH 16/56] feat: refactor `/extended/v1/debug/*` endpoints to fastify --- src/api/init.ts | 33 +--- src/api/routes/debug.ts | 331 ++++++++++++++++++++++----------------- src/api/routes/status.ts | 84 +++++----- 3 files changed, 234 insertions(+), 214 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index 37521ec41..c88941c4f 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -5,7 +5,7 @@ import { v4 as uuid } from 'uuid'; import * as cors from 'cors'; import { TxRoutes } from './routes/tx'; -import { createDebugRouter } from './routes/debug'; +import { DebugRoutes } from './routes/debug'; import { InfoRoutes } from './routes/info'; import { ContractRoutes } from './routes/contract'; import { createCoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; @@ -202,14 +202,6 @@ export async function startApiServer(opts: { res.set('Cache-Control', 'no-store'); next(); }); - router.use( - '/v1', - (() => { - const v1 = express.Router(); - v1.use('/debug', createDebugRouter(datastore)); - return v1; - })() - ); router.use( '/v2', (() => { @@ -396,6 +388,7 @@ export async function startApiServer(opts: { await fastify.register(PoxRoutes, { prefix: '/:pox(pox\\d)' }); await fastify.register(PoxEventRoutes, { prefix: '/:(pox\\d_events)' }); await fastify.register(FaucetRoutes, { prefix: '/faucets' }); + await fastify.register(DebugRoutes, { prefix: '/debug' }); }, { prefix: '/extended/v1' } ); @@ -404,27 +397,7 @@ export async function startApiServer(opts: { // However, it's the most straightforward way to split between Fastify and Express without // introducing a bunch of problamatic middleware side-effects. // Once all `/extended` routes are migrated it will be simplified to something like "only use Express for Rosetta routes". - const fastifyPaths = new RegExp( - [ - '^/$', - '^/extended$', - '^/extended/v1/status', - '^/extended/v1/tx', - '^/extended/v1/stx_supply', - '^/extended/v1/info', - '^/extended/v1/tokens', - '^/extended/v1/contract', - '^/extended/v1/fee_rate', - '^/extended/v1/microblock', - '^/extended/v1/block', - '^/extended/v1/burnchain', - '^/extended/v1/address', - '^/extended/v1/search', - '^/extended/v1/pox', - '^/extended/v1/faucets', - ].join('|'), - 'i' - ); + const fastifyPaths = new RegExp(['^/$', '^/extended$', '^/extended/v1'].join('|'), 'i'); const server = createServer(async (req, res) => { const path = new URL(req.url as string, 'http://x').pathname; diff --git a/src/api/routes/debug.ts b/src/api/routes/debug.ts index df26aebb9..fa8f78731 100644 --- a/src/api/routes/debug.ts +++ b/src/api/routes/debug.ts @@ -1,10 +1,6 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import * as express from 'express'; import { stacksToBitcoinAddress } from 'stacks-encoding-native-js'; -import * as bodyParser from 'body-parser'; -import { asyncHandler } from '../async-handler'; import { htmlEscape } from 'escape-goat'; -import * as listEndpoints from 'express-list-endpoints'; import { makeSTXTokenTransfer, makeContractDeploy, @@ -26,7 +22,6 @@ import { addressToString, SignedContractCallOptions, uintCV, - tupleCV, bufferCV, AnchorMode, deserializeTransaction, @@ -39,9 +34,7 @@ import { SampleContracts } from '../../sample-data/broadcast-contract-default'; import { ClarityAbi, getTypeString, encodeClarityValue } from '../../event-stream/contract-abi'; import { NETWORK_CHAIN_ID, cssEscape, unwrapOptional } from '../../helpers'; import { StacksCoreRpcClient, getCoreNodeEndpoint } from '../../core-rpc/client'; -import { PgStore } from '../../datastore/pg-store'; import { DbTx } from '../../datastore/common'; -import * as poxHelpers from '../../pox-helpers'; import fetch from 'node-fetch'; import { RosettaBlockTransactionRequest, @@ -61,6 +54,11 @@ import { StackingClient, decodeBtcAddress, poxAddressToTuple } from '@stacks/sta import { getPublicKeyFromPrivate } from '@stacks/encryption'; import { randomBytes } from 'node:crypto'; import { hexToBytes } from '@stacks/common'; +import { FastifyPluginAsync, RouteOptions } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { fastifyFormbody } from '@fastify/formbody'; +import { Server } from 'node:http'; +import { OptionalNullable } from '../schemas/util'; const testnetAccounts = [ { @@ -125,32 +123,34 @@ function getRandomInt(min: number, max: number) { return Math.floor(Math.random() * (max - min) + min); } -export function createDebugRouter(db: PgStore): express.Router { +async function sendCoreTx(serializedTx: Buffer): Promise<{ txId: string }> { + const submitResult = await new StacksCoreRpcClient().sendTransaction(serializedTx); + return submitResult; +} + +export const DebugRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + await fastify.register(fastifyFormbody); + const defaultTxFee = 123450; const stacksNetwork = getStacksTestnetNetwork(); - const router = express.Router(); - router.use(express.urlencoded({ extended: true })); - router.use(bodyParser.raw({ type: 'application/octet-stream' })); - - async function sendCoreTx(serializedTx: Buffer): Promise<{ txId: string }> { - const submitResult = await new StacksCoreRpcClient().sendTransaction(serializedTx); - return submitResult; - } + const routes: RouteOptions[] = []; + fastify.addHook('onRoute', route => void routes.push(route)); - router.get('/broadcast', (req, res) => { - const endpoints = listEndpoints(router as unknown as express.Express); - const paths: Set = new Set(); - endpoints.forEach(e => { - if (e.methods.includes('GET')) { - paths.add(req.baseUrl + e.path); - } - }); + fastify.get('/broadcast', async (req, reply) => { + const paths = routes + .filter(r => r.method === 'GET') + .filter(r => !r.schema?.params) + .map(r => r.url); const links = [...paths].map(e => { return `${e}`; }); const html = links.join('
'); - res.set('Content-Type', 'text/html').send(html); + await reply.type('text/html').send(html); }); const tokenTransferFromMultisigHtml = ` @@ -194,51 +194,39 @@ export function createDebugRouter(db: PgStore): express.Router { `; - router.get( - '/broadcast/token-transfer-from-multisig', - asyncHandler((req, res) => { - res.set('Content-Type', 'text/html').send(tokenTransferFromMultisigHtml); - }) - ); + fastify.get('/broadcast/token-transfer-from-multisig', async (req, reply) => { + await reply.type('text/html').send(tokenTransferFromMultisigHtml); + }); - router.post( + fastify.post( '/broadcast/token-transfer-from-multisig', - asyncHandler(async (req, res) => { + { + schema: { + body: Type.Object({ + sponsored: Type.Boolean(), + signers: Type.Array(Type.String()), + signatures_required: Type.Integer(), + recipient_address: Type.String(), + stx_amount: Type.String(), + memo: Type.String(), + }), + }, + }, + async (req, res) => { const { signers: signersInput, signatures_required, recipient_address, stx_amount, memo, - } = req.body as { - signers: string[] | string; - signatures_required: string; - recipient_address: string; - stx_amount: string; - memo: string; - }; + } = req.body; const sponsored = !!req.body.sponsored; - const sigsRequired = parseInt(signatures_required); + const sigsRequired = signatures_required; const signers = Array.isArray(signersInput) ? signersInput : [signersInput]; const signerPubKeys = signers.map(addr => testnetKeyMap[addr].pubKey); const signerPrivateKeys = signers.map(addr => testnetKeyMap[addr].secretKey); - /* - const transferTx1 = await makeSTXTokenTransfer({ - recipient: recipient_address, - amount: new BN(stx_amount), - memo: memo, - network: stacksNetwork, - sponsored: sponsored, - numSignatures: sigsRequired, - // TODO: should this field be named `signerPublicKeys`? - publicKeys: signerPubKeys, - // TODO: should this field be named `signerPrivateKeys`? - signerKeys: signerPrivateKeys, - }); - */ - const transferTx = await makeUnsignedSTXTokenTransfer({ recipient: recipient_address, amount: BigInt(stx_amount), @@ -281,14 +269,14 @@ export function createDebugRouter(db: PgStore): express.Router { if (txId !== '0x' + expectedTxId) { throw new Error(`Expected ${expectedTxId}, core ${txId}`); } - res - .set('Content-Type', 'text/html') + await res + .type('text/html') .send( tokenTransferFromMultisigHtml + '

Broadcasted transaction:

' + `${txId}` ); - }) + } ); const tokenTransferMultisigHtml = ` @@ -330,36 +318,39 @@ export function createDebugRouter(db: PgStore): express.Router { `; - router.get( - '/broadcast/token-transfer-multisig', - asyncHandler((req, res) => { - res.set('Content-Type', 'text/html').send(tokenTransferMultisigHtml); - }) - ); + fastify.get('/broadcast/token-transfer-multisig', async (req, res) => { + await res.type('text/html').send(tokenTransferMultisigHtml); + }); - router.post( + fastify.post( '/broadcast/token-transfer-multisig', - asyncHandler(async (req, res) => { + { + schema: { + body: Type.Object({ + origin_key: Type.String(), + recipient_addresses: Type.Array(Type.String()), + signatures_required: Type.Integer(), + stx_amount: Type.String(), + memo: Type.String(), + sponsored: Type.Boolean(), + }), + }, + }, + async (req, res) => { const { origin_key, recipient_addresses: recipientInput, signatures_required, stx_amount, memo, - } = req.body as { - origin_key: string; - recipient_addresses: string[] | string; - signatures_required: string; - stx_amount: string; - memo: string; - }; - const sponsored = !!req.body.sponsored; + } = req.body; + const sponsored = req.body.sponsored; const recipientAddresses = Array.isArray(recipientInput) ? recipientInput : [recipientInput]; const recipientPubKeys = recipientAddresses .map(s => testnetKeyMap[s].pubKey) .map(k => createStacksPublicKey(k)); - const sigRequired = parseInt(signatures_required); + const sigRequired = signatures_required; const recipientAddress = addressToString( addressFromPublicKeys( stacksNetwork.version === TransactionVersion.Testnet @@ -403,14 +394,14 @@ export function createDebugRouter(db: PgStore): express.Router { if (txId !== '0x' + expectedTxId) { throw new Error(`Expected ${expectedTxId}, core ${txId}`); } - res - .set('Content-Type', 'text/html') + await res + .type('text/html') .send( tokenTransferMultisigHtml + '

Broadcasted transaction:

' + `${txId}` ); - }) + } ); const tokenTransferHtml = ` @@ -460,16 +451,26 @@ export function createDebugRouter(db: PgStore): express.Router { `; - router.get( - '/broadcast/token-transfer', - asyncHandler((req, res) => { - res.set('Content-Type', 'text/html').send(tokenTransferHtml); - }) - ); + fastify.get('/broadcast/token-transfer', async (req, res) => { + await res.type('text/html').send(tokenTransferHtml); + }); - router.post( + fastify.post( '/broadcast/token-transfer', - asyncHandler(async (req, res) => { + { + schema: { + body: Type.Object({ + origin_key: Type.String(), + recipient_address: Type.String(), + stx_amount: Type.String(), + memo: Type.String(), + nonce: Type.String(), + anchor_mode: Type.Integer(), + sponsored: Type.Boolean(), + }), + }, + }, + async (req, res) => { const { origin_key, recipient_address, stx_amount, memo, nonce, anchor_mode } = req.body; const sponsored = !!req.body.sponsored; @@ -480,7 +481,7 @@ export function createDebugRouter(db: PgStore): express.Router { if (Number.isInteger(Number.parseInt(nonce))) { txNonce = Number.parseInt(nonce); } else { - const latestNonces = await db.getAddressNonces({ stxAddress: senderAddress }); + const latestNonces = await fastify.db.getAddressNonces({ stxAddress: senderAddress }); txNonce = latestNonces.possibleNextNonce; } @@ -518,14 +519,14 @@ export function createDebugRouter(db: PgStore): express.Router { if (txId !== '0x' + expectedTxId) { throw new Error(`Expected ${expectedTxId}, core ${txId}`); } - res - .set('Content-Type', 'text/html') + await res + .type('text/html') .send( tokenTransferHtml + '

Broadcasted transaction:

' + `${txId}` ); - }) + } ); const sendPoxHtml = ` @@ -567,8 +568,8 @@ export function createDebugRouter(db: PgStore): express.Router { `; - router.get('/broadcast/stack', (req, res) => { - res.set('Content-Type', 'text/html').send(sendPoxHtml); + fastify.get('/broadcast/stack', async (req, res) => { + await res.type('text/html').send(sendPoxHtml); }); async function fetchRosetta(port: number, endpoint: string, body: TPostBody) { @@ -698,9 +699,20 @@ export function createDebugRouter(db: PgStore): express.Router { }; } - router.post( + fastify.post( '/broadcast/stack', - asyncHandler(async (req, res) => { + { + schema: { + body: Type.Object({ + origin_key: Type.String(), + recipient_address: Type.String(), + stx_amount: Type.String(), + cycle_count: Type.Integer(), + use_rosetta: Type.Boolean(), + }), + }, + }, + async (req, res) => { const { origin_key, recipient_address, stx_amount, cycle_count } = req.body; const cycles = Number(cycle_count); const useRosetta = !!req.body.use_rosetta; @@ -782,7 +794,7 @@ export function createDebugRouter(db: PgStore): express.Router { } } - res.set('Content-Type', 'text/html').send( + await res.type('text/html').send( sendPoxHtml + `

Broadcasted transaction:

@@ -804,20 +816,27 @@ export function createDebugRouter(db: PgStore): express.Router { ` ); - }) + } ); - router.get( + fastify.get( '/rosetta/tx/:tx_id', - asyncHandler(async (req, res) => { + { + schema: { + params: Type.Object({ + tx_id: Type.String(), + }), + }, + }, + async (req, res) => { const { tx_id } = req.params; - const searchResult = await db.searchHash({ hash: tx_id }); + const searchResult = await fastify.db.searchHash({ hash: tx_id }); if (!searchResult.found) { - res.status(404).send('Transaction not found'); + await res.status(404).send('Transaction not found'); return; } if (searchResult.result.entity_type === 'mempool_tx_id') { - res.status(404).send('Transaction still pending in mempool'); + await res.status(404).send('Transaction still pending in mempool'); return; } const dbTx = searchResult.result.entity_data as DbTx; @@ -831,8 +850,8 @@ export function createDebugRouter(db: PgStore): express.Router { transaction_identifier: { hash: dbTx.tx_id }, }); - res.set('Content-Type', 'application/json').send(JSON.stringify(txResult, null, 2)); - }) + await res.type('application/json').send(JSON.stringify(txResult, null, 2)); + } ); const contractDeployHtml = ` @@ -868,21 +887,29 @@ export function createDebugRouter(db: PgStore): express.Router { `; - router.get('/broadcast/contract-deploy', (req, res) => { - res.set('Content-Type', 'text/html').send(contractDeployHtml); + fastify.get('/broadcast/contract-deploy', async (req, res) => { + await res.type('text/html').send(contractDeployHtml); }); - router.post( + fastify.post( '/broadcast/contract-deploy', - asyncHandler(async (req, res) => { + { + schema: { + body: Type.Object({ + origin_key: Type.String(), + contract_name: Type.String(), + source_code: Type.String(), + sponsored: Type.Boolean(), + }), + }, + }, + async (req, res) => { const { origin_key, contract_name, source_code } = req.body; const sponsored = !!req.body.sponsored; const senderAddress = getAddressFromPrivateKey(origin_key, stacksNetwork.version); - const normalized_contract_source = (source_code as string) - .replace(/\r/g, '') - .replace(/\t/g, ' '); + const normalized_contract_source = source_code.replace(/\r/g, '').replace(/\t/g, ' '); const contractDeployTx = await makeContractDeploy({ contractName: contract_name, clarityVersion: 2, @@ -917,8 +944,8 @@ export function createDebugRouter(db: PgStore): express.Router { if (txId !== '0x' + expectedTxId) { throw new Error(`Expected ${expectedTxId}, core ${txId}`); } - res - .set('Content-Type', 'text/html') + await res + .type('text/html') .send( contractDeployHtml + '

Broadcasted transaction:

' + @@ -926,7 +953,7 @@ export function createDebugRouter(db: PgStore): express.Router { '

Deployed contract:

' + `${contractId}` ); - }) + } ); const contractCallHtml = ` @@ -965,13 +992,20 @@ export function createDebugRouter(db: PgStore): express.Router { `; - router.get( + fastify.get( '/broadcast/contract-call/:contract_id', - asyncHandler(async (req, res) => { + { + schema: { + params: Type.Object({ + contract_id: Type.String(), + }), + }, + }, + async (req, res) => { const { contract_id } = req.params; - const dbContractQuery = await db.getSmartContract(contract_id); + const dbContractQuery = await fastify.db.getSmartContract(contract_id); if (!dbContractQuery.found) { - res.status(404).json({ error: `cannot find contract by ID ${contract_id}` }); + await res.status(404).send({ error: `cannot find contract by ID ${contract_id}` }); return; } const contractAbi: ClarityAbi = JSON.parse(dbContractQuery.result.abi as string); @@ -1011,22 +1045,30 @@ export function createDebugRouter(db: PgStore): express.Router { ); formHtml = formHtml.replace('{function_arg_controls}', funcHtml); - res.set('Content-Type', 'text/html').send(formHtml); - }) + await res.type('text/html').send(formHtml); + } ); - router.post( + fastify.post( '/broadcast/contract-call/:contract_id', - asyncHandler(async (req, res) => { + { + schema: { + params: Type.Object({ + contract_id: Type.String(), + }), + body: Type.Record(Type.String(), Type.String()), + }, + }, + async (req, res) => { const contractId: string = req.params['contract_id']; - const dbContractQuery = await db.getSmartContract(contractId); + const dbContractQuery = await fastify.db.getSmartContract(contractId); if (!dbContractQuery.found) { - res.status(404).json({ error: `could not find contract by ID ${contractId}` }); + await res.status(404).send({ error: `could not find contract by ID ${contractId}` }); return; } const contractAbi: ClarityAbi = JSON.parse(dbContractQuery.result.abi as string); - const body = req.body as Record; + const body = req.body; const originKey = body['origin_key']; const functionName = body['fn_name']; const functionArgs = new Map(); @@ -1087,12 +1129,12 @@ export function createDebugRouter(db: PgStore): express.Router { if (txId !== '0x' + expectedTxId) { throw new Error(`Expected ${expectedTxId}, core ${txId}`); } - res - .set('Content-Type', 'text/html') + await res + .type('text/html') .send( '

Broadcasted transaction:

' + `${txId}` ); - }) + } ); const txWatchHtml = ` @@ -1112,18 +1154,27 @@ export function createDebugRouter(db: PgStore): express.Router { `; - router.get('/watch-tx', (req, res) => { - res.set('Content-Type', 'text/html').send(txWatchHtml); + fastify.get('/watch-tx', async (req, res) => { + await res.type('text/html').send(txWatchHtml); }); - router.post('/faucet', (req, res) => { - // Redirect with 307 because: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307 - // "... the difference between 307 and 302 is that 307 guarantees that the method and the body - // will not be changed when the redirected request is made ... the behavior with non-GET - // methods and 302 is then unpredictable on the Web." - const address: string = req.query.address || req.body.address; - res.redirect(307, `../faucets/stx?address=${encodeURIComponent(address)}`); - }); + fastify.post( + '/faucet', + { + schema: { + querystring: Type.Object({ address: Type.Optional(Type.String()) }), + body: OptionalNullable(Type.Object({ address: Type.Optional(Type.String()) })), + }, + }, + async (req, res) => { + // Redirect with 307 because: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307 + // "... the difference between 307 and 302 is that 307 guarantees that the method and the body + // will not be changed when the redirected request is made ... the behavior with non-GET + // methods and 302 is then unpredictable on the Web." + const address: string = req.query.address ?? req.body?.address ?? ''; + await res.status(307).redirect(`../faucets/stx?address=${encodeURIComponent(address)}`); + } + ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/status.ts b/src/api/routes/status.ts index fcb6cb262..7a63b27e1 100644 --- a/src/api/routes/status.ts +++ b/src/api/routes/status.ts @@ -10,52 +10,48 @@ export const StatusRoutes: FastifyPluginAsync< Server, TypeBoxTypeProvider > = async fastify => { - const schema = { - operationId: 'get_status', - summary: 'API status', - description: - 'Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information.', - tags: ['Info'], - response: { - 200: ServerStatusResponseSchema, + fastify.route({ + method: ['GET', 'POST'], + url: '/extended', + schema: { + operationId: 'get_status', + summary: 'API status', + description: + 'Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information.', + tags: ['Info'], + response: { + 200: ServerStatusResponseSchema, + }, }, - }; - - const getStatus = async () => { - const response: ServerStatusResponse = { - server_version: `stacks-blockchain-api ${SERVER_VERSION.tag} (${SERVER_VERSION.branch}:${SERVER_VERSION.commit})`, - status: 'ready', - }; - try { - const poxForceUnlockHeights = await fastify.db.getPoxForceUnlockHeights(); - if (poxForceUnlockHeights.found) { - response.pox_v1_unlock_height = poxForceUnlockHeights.result.pox1UnlockHeight as number; - response.pox_v2_unlock_height = poxForceUnlockHeights.result.pox2UnlockHeight as number; - response.pox_v3_unlock_height = poxForceUnlockHeights.result.pox3UnlockHeight as number; - } - const chainTip = await fastify.db.getChainTip(fastify.db.sql); - if (chainTip.block_height > 0) { - response.chain_tip = { - block_height: chainTip.block_height, - block_hash: chainTip.block_hash, - index_block_hash: chainTip.index_block_hash, - microblock_hash: chainTip.microblock_hash, - microblock_sequence: chainTip.microblock_sequence, - burn_block_height: chainTip.burn_block_height, - }; + preHandler: handleChainTipCache, + handler: async (_, reply) => { + const response: ServerStatusResponse = { + server_version: `stacks-blockchain-api ${SERVER_VERSION.tag} (${SERVER_VERSION.branch}:${SERVER_VERSION.commit})`, + status: 'ready', + }; + try { + const poxForceUnlockHeights = await fastify.db.getPoxForceUnlockHeights(); + if (poxForceUnlockHeights.found) { + response.pox_v1_unlock_height = poxForceUnlockHeights.result.pox1UnlockHeight as number; + response.pox_v2_unlock_height = poxForceUnlockHeights.result.pox2UnlockHeight as number; + response.pox_v3_unlock_height = poxForceUnlockHeights.result.pox3UnlockHeight as number; + } + const chainTip = await fastify.db.getChainTip(fastify.db.sql); + if (chainTip.block_height > 0) { + response.chain_tip = { + block_height: chainTip.block_height, + block_hash: chainTip.block_hash, + index_block_hash: chainTip.index_block_hash, + microblock_hash: chainTip.microblock_hash, + microblock_sequence: chainTip.microblock_sequence, + burn_block_height: chainTip.burn_block_height, + }; + } + } catch (error) { + // ignore error } - } catch (error) { - // ignore error - } - return response; - }; - - fastify.get('/extended', { schema, preHandler: handleChainTipCache }, async (_, reply) => { - await reply.send(await getStatus()); - }); - - fastify.post('/extended', { schema, preHandler: handleChainTipCache }, async (_, reply) => { - await reply.send(await getStatus()); + await reply.send(response); + }, }); fastify.get('/', async (_, reply) => { From e1c171427108d5d77c48324525e887941c6ebc5e Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Fri, 2 Aug 2024 14:29:36 +0200 Subject: [PATCH 17/56] feat: refactor `/extended/v2/blocks/*` and `/extended/v2/burn-blocks/*` endpoints to fastify --- package-lock.json | 8 +- package.json | 2 +- src/api/init.ts | 30 ++-- src/api/routes/tokens.ts | 2 +- src/api/routes/v2/blocks.ts | 197 +++++++++++++++--------- src/api/routes/v2/burn-blocks.ts | 158 +++++++++++-------- src/api/routes/v2/schemas.ts | 33 +++- src/api/schemas/entities/block.ts | 36 +++++ src/api/schemas/entities/burn-blocks.ts | 24 +++ src/datastore/pg-store-v2.ts | 3 +- 10 files changed, 319 insertions(+), 174 deletions(-) create mode 100644 src/api/schemas/entities/burn-blocks.ts diff --git a/package-lock.json b/package-lock.json index 77412ad28..6427a8947 100644 --- a/package-lock.json +++ b/package-lock.json @@ -123,7 +123,7 @@ "socket.io-client": "4.5.4", "supertest": "4.0.2", "ts-jest": "29.1.1", - "ts-node": "10.8.2", + "ts-node": "10.9.2", "typescript": "5.5.4", "why-is-node-running": "2.2.0" }, @@ -13245,9 +13245,9 @@ } }, "node_modules/ts-node": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.2.tgz", - "integrity": "sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", diff --git a/package.json b/package.json index 2ca1f866f..a654c63ce 100644 --- a/package.json +++ b/package.json @@ -198,7 +198,7 @@ "socket.io-client": "4.5.4", "supertest": "4.0.2", "ts-jest": "29.1.1", - "ts-node": "10.8.2", + "ts-node": "10.9.2", "typescript": "5.5.4", "why-is-node-running": "2.2.0" }, diff --git a/src/api/init.ts b/src/api/init.ts index c88941c4f..7e3e1f7d7 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -50,9 +50,9 @@ import { parseBoolean, waiter, } from '@hirosystems/api-toolkit'; -import { createV2BlocksRouter } from './routes/v2/blocks'; +import { BlockRoutesV2 } from './routes/v2/blocks'; import { getReqQuery } from './query-helpers'; -import { createV2BurnBlocksRouter } from './routes/v2/burn-blocks'; +import { BurnBlockRoutesV2 } from './routes/v2/burn-blocks'; import { createMempoolRouter } from './routes/v2/mempool'; import { createV2SmartContractsRouter } from './routes/v2/smart-contracts'; import { createV2AddressesRouter } from './routes/v2/addresses'; @@ -206,8 +206,6 @@ export async function startApiServer(opts: { '/v2', (() => { const v2 = express.Router(); - v2.use('/blocks', createV2BlocksRouter(datastore)); - v2.use('/burn-blocks', createV2BurnBlocksRouter(datastore)); v2.use('/smart-contracts', createV2SmartContractsRouter(datastore)); v2.use('/mempool', createMempoolRouter(datastore)); v2.use('/addresses', createV2AddressesRouter(datastore)); @@ -215,20 +213,6 @@ export async function startApiServer(opts: { return v2; })() ); - router.use( - '/beta', - (() => { - const beta = express.Router(); - // Redirect to new endpoint for backward compatibility. - // TODO: remove this in the future - beta.use('/stacking/:pool_principal/delegations', (req, res) => { - const { pool_principal } = req.params; - const newPath = `/extended/v1/pox3/${pool_principal}/delegations${getReqQuery(req)}`; - return res.redirect(newPath); - }); - return beta; - })() - ); return router; })() ); @@ -393,11 +377,19 @@ export async function startApiServer(opts: { { prefix: '/extended/v1' } ); + await fastify.register( + async fastify => { + await fastify.register(BlockRoutesV2, { prefix: '/blocks' }); + await fastify.register(BurnBlockRoutesV2, { prefix: '/burn-blocks' }); + }, + { prefix: '/extended/v2' } + ); + // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without // introducing a bunch of problamatic middleware side-effects. // Once all `/extended` routes are migrated it will be simplified to something like "only use Express for Rosetta routes". - const fastifyPaths = new RegExp(['^/$', '^/extended$', '^/extended/v1'].join('|'), 'i'); + const fastifyPaths = new RegExp(['^/$', '^/extended'].join('|'), 'i'); const server = createServer(async (req, res) => { const path = new URL(req.url as string, 'http://x').pathname; diff --git a/src/api/routes/tokens.ts b/src/api/routes/tokens.ts index f3d5a7db3..ec1ab813f 100644 --- a/src/api/routes/tokens.ts +++ b/src/api/routes/tokens.ts @@ -85,7 +85,7 @@ export const TokenRoutes: FastifyPluginAsync< } let assetIdentifiers: string[] | undefined; if (req.query.asset_identifiers) { - assetIdentifiers = req.query.asset_identifiers.flatMap(str => str.split(',') as string[]); + assetIdentifiers = req.query.asset_identifiers.flatMap(str => str.split(',')); for (const assetIdentifier of assetIdentifiers) { if (!isValidPrincipal(assetIdentifier.split('::')[0])) { throw new InvalidRequestError( diff --git a/src/api/routes/v2/blocks.ts b/src/api/routes/v2/blocks.ts index 59a0cc312..dabe201b8 100644 --- a/src/api/routes/v2/blocks.ts +++ b/src/api/routes/v2/blocks.ts @@ -1,53 +1,82 @@ -import * as express from 'express'; -import { PgStore } from '../../../datastore/pg-store'; -import { - getETagCacheHandler, - setETagCacheHeaders, -} from '../../../api/controllers/cache-controller'; -import { asyncHandler } from '../../async-handler'; -import { NakamotoBlockListResponse, TransactionResults } from 'docs/generated'; -import { - BlockParams, - CompiledBlockParams, - CompiledTransactionPaginationQueryParams, - TransactionPaginationQueryParams, - validRequestQuery, - validRequestParams, - CompiledBlockPaginationQueryParams, - BlockPaginationQueryParams, -} from './schemas'; +import { handleChainTipCache } from '../../../api/controllers/cache-controller'; +import { BlockParamsSchema } from './schemas'; import { parseDbNakamotoBlock } from './helpers'; -import { InvalidRequestError } from '../../../errors'; +import { InvalidRequestError, NotFoundError } from '../../../errors'; import { parseDbTx } from '../../../api/controllers/db-controller'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam } from '../../schemas/params'; +import { ResourceType } from '../../pagination'; +import { PaginatedResponse } from '../../schemas/util'; +import { NakamotoBlock, NakamotoBlockSchema } from '../../schemas/entities/block'; +import { TransactionSchema } from '../../schemas/entities/transactions'; -export function createV2BlocksRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - - router.get( +export const BlockRoutesV2: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/', - cacheHandler, - asyncHandler(async (req, res) => { - if (!validRequestQuery(req, res, CompiledBlockPaginationQueryParams)) return; - const query = req.query as BlockPaginationQueryParams; - - const { limit, offset, results, total } = await db.v2.getBlocks(query); - const response: NakamotoBlockListResponse = { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_blocks', + summary: 'Get blocks', + description: `Retrieves a list of recently mined blocks`, + tags: ['Blocks'], + querystring: Type.Object({ + limit: LimitParam(ResourceType.Block), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(NakamotoBlockSchema), + }, + }, + }, + async (req, reply) => { + const query = req.query; + const { limit, offset, results, total } = await fastify.db.v2.getBlocks(query); + const blocks: NakamotoBlock[] = results.map(r => parseDbNakamotoBlock(r)); + await reply.send({ limit, offset, total, - results: results.map(r => parseDbNakamotoBlock(r)), - }; - setETagCacheHeaders(res); - res.json(response); - }) + results: blocks, + }); + } ); - router.get( + fastify.get( '/average-times', - cacheHandler, - asyncHandler(async (_req, res) => { - const query = await db.v2.getAverageBlockTimes(); + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_average_block_times', + summary: 'Get average block times', + description: `Retrieves average block times (in seconds)`, + tags: ['Blocks'], + response: { + 200: Type.Object({ + last_1h: Type.Number({ + description: 'Average block times over the last hour (in seconds)', + }), + last_24h: Type.Number({ + description: 'Average block times over the last 24 hours (in seconds)', + }), + last_7d: Type.Number({ + description: 'Average block times over the last 7 days (in seconds)', + }), + last_30d: Type.Number({ + description: 'Average block times over the last 30 days (in seconds)', + }), + }), + }, + }, + }, + async (_req, reply) => { + const query = await fastify.db.v2.getAverageBlockTimes(); // Round to 2 decimal places const times = { last_1h: parseFloat(query.last_1h.toFixed(2)), @@ -55,64 +84,78 @@ export function createV2BlocksRouter(db: PgStore): express.Router { last_7d: parseFloat(query.last_7d.toFixed(2)), last_30d: parseFloat(query.last_30d.toFixed(2)), }; - setETagCacheHeaders(res); - res.json(times); - }) + await reply.send(times); + } ); - router.get( + fastify.get( '/:height_or_hash', - cacheHandler, - asyncHandler(async (req, res) => { - if (!validRequestParams(req, res, CompiledBlockParams)) return; - const params = req.params as BlockParams; - - const block = await db.v2.getBlock(params); + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_block', + summary: 'Get block', + description: `Retrieves a single block`, + tags: ['Blocks'], + params: BlockParamsSchema, + response: { + 200: NakamotoBlockSchema, + }, + }, + }, + async (req, reply) => { + const params = req.params; + const block = await fastify.db.v2.getBlock(params); if (!block) { - res.status(404).json({ errors: 'Not found' }); - return; + throw new NotFoundError('Block not found'); } - setETagCacheHeaders(res); - res.json(parseDbNakamotoBlock(block)); - }) + await reply.send(parseDbNakamotoBlock(block)); + } ); - router.get( + fastify.get( '/:height_or_hash/transactions', - cacheHandler, - asyncHandler(async (req, res) => { - if ( - !validRequestParams(req, res, CompiledBlockParams) || - !validRequestQuery(req, res, CompiledTransactionPaginationQueryParams) - ) - return; - const params = req.params as BlockParams; - const query = req.query as TransactionPaginationQueryParams; + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_transactions_by_block', + summary: 'Get transactions by block', + description: `Retrieves transactions confirmed in a single block`, + tags: ['Transactions'], + params: BlockParamsSchema, + querystring: Type.Object({ + limit: LimitParam(ResourceType.Tx), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(TransactionSchema), + }, + }, + }, + async (req, reply) => { + const params = req.params; + const query = req.query; try { - const { limit, offset, results, total } = await db.v2.getBlockTransactions({ + const { limit, offset, results, total } = await fastify.db.v2.getBlockTransactions({ ...params, ...query, }); - const response: TransactionResults = { + const response = { limit, offset, total, - results: results.map( - r => parseDbTx(r) as import('@stacks/stacks-blockchain-api-types').Transaction - ), + results: results.map(r => parseDbTx(r)), }; - setETagCacheHeaders(res); - res.json(response); + await reply.send(response); } catch (error) { if (error instanceof InvalidRequestError) { - res.status(404).json({ errors: error.message }); - return; + throw new NotFoundError('Block not found'); } throw error; } - }) + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/v2/burn-blocks.ts b/src/api/routes/v2/burn-blocks.ts index b12e38695..33f64cda7 100644 --- a/src/api/routes/v2/burn-blocks.ts +++ b/src/api/routes/v2/burn-blocks.ts @@ -1,98 +1,120 @@ -import * as express from 'express'; -import { - BurnBlockListResponse, - BurnBlock, - NakamotoBlockListResponse, -} from '@stacks/stacks-blockchain-api-types'; -import { getETagCacheHandler, setETagCacheHeaders } from '../../controllers/cache-controller'; -import { asyncHandler } from '../../async-handler'; -import { PgStore } from '../../../datastore/pg-store'; +import { handleChainTipCache } from '../../controllers/cache-controller'; import { parseDbBurnBlock, parseDbNakamotoBlock } from './helpers'; -import { - BlockPaginationQueryParams, - BlockParams, - CompiledBlockPaginationQueryParams, - CompiledBlockParams, - validRequestParams, - validRequestQuery, -} from './schemas'; -import { InvalidRequestError } from '../../../errors'; +import { BurnBlockParamsSchema } from './schemas'; +import { InvalidRequestError, NotFoundError } from '../../../errors'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam } from '../../schemas/params'; +import { ResourceType } from '../../pagination'; +import { PaginatedResponse } from '../../schemas/util'; +import { BurnBlock, BurnBlockSchema } from '../../schemas/entities/burn-blocks'; -export function createV2BurnBlocksRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - - router.get( +export const BurnBlockRoutesV2: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/', - cacheHandler, - asyncHandler(async (req, res) => { - if (!validRequestQuery(req, res, CompiledBlockPaginationQueryParams)) return; - const query = req.query as BlockPaginationQueryParams; - - const { limit, offset, results, total } = await db.v2.getBurnBlocks(query); - const response: BurnBlockListResponse = { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_burn_blocks', + summary: 'Get burn blocks', + description: `Retrieves a list of recent burn blocks`, + tags: ['Burn Blocks'], + querystring: Type.Object({ + limit: LimitParam(ResourceType.BurnBlock), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(BurnBlockSchema), + }, + }, + }, + async (req, reply) => { + const query = req.query; + const { limit, offset, results, total } = await fastify.db.v2.getBurnBlocks(query); + const blocks: BurnBlock[] = results.map(r => parseDbBurnBlock(r)); + await reply.send({ limit, offset, total, - results: results.map(r => parseDbBurnBlock(r)), - }; - setETagCacheHeaders(res); - res.json(response); - }) + results: blocks, + }); + } ); - router.get( + fastify.get( '/:height_or_hash', - cacheHandler, - asyncHandler(async (req, res) => { - if (!validRequestParams(req, res, CompiledBlockParams)) return; - const params = req.params as BlockParams; - - const block = await db.v2.getBurnBlock(params); + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_burn_block', + summary: 'Get burn block', + description: `Retrieves a single burn block`, + tags: ['Burn Blocks'], + params: BurnBlockParamsSchema, + response: { + 200: BurnBlockSchema, + }, + }, + }, + async (req, reply) => { + const params = req.params; + const block = await fastify.db.v2.getBurnBlock(params); if (!block) { - res.status(404).json({ errors: 'Not found' }); - return; + throw new NotFoundError(); } const response: BurnBlock = parseDbBurnBlock(block); - setETagCacheHeaders(res); - res.json(response); - }) + await reply.send(response); + } ); - router.get( + fastify.get( '/:height_or_hash/blocks', - cacheHandler, - asyncHandler(async (req, res) => { - if ( - !validRequestParams(req, res, CompiledBlockParams) || - !validRequestQuery(req, res, CompiledBlockPaginationQueryParams) - ) - return; - const params = req.params as BlockParams; - const query = req.query as BlockPaginationQueryParams; + { + preHandler: handleChainTipCache, + schema: { + operationId: '', + summary: '', + description: ``, + tags: [''], + params: BurnBlockParamsSchema, + querystring: Type.Object({ + limit: LimitParam(ResourceType.BurnBlock), + offset: OffsetParam(), + }), + response: { + 200: Type.Object({}), + }, + }, + }, + async (req, reply) => { + const params = req.params; + const query = req.query; try { - const { limit, offset, results, total } = await db.v2.getBlocksByBurnBlock({ + const { limit, offset, results, total } = await fastify.db.v2.getBlocksByBurnBlock({ ...params, ...query, }); - const response: NakamotoBlockListResponse = { + const blocks = results.map(r => parseDbNakamotoBlock(r)); + await reply.send({ limit, offset, total, - results: results.map(r => parseDbNakamotoBlock(r)), - }; - setETagCacheHeaders(res); - res.json(response); + results: blocks, + }); } catch (error) { if (error instanceof InvalidRequestError) { - res.status(404).json({ errors: error.message }); - return; + throw new NotFoundError(error.message); } throw error; } - }) + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/v2/schemas.ts b/src/api/routes/v2/schemas.ts index b7b6b7893..b5067f445 100644 --- a/src/api/routes/v2/schemas.ts +++ b/src/api/routes/v2/schemas.ts @@ -119,6 +119,21 @@ const BurnBlockHeightParamSchema = Type.String({ examples: ['777678'], }); +const BlockHeightParamSchema = Type.String({ + pattern: '^[0-9]+$', + title: 'Block height', + description: 'Block height', + examples: ['777678'], +}); + +const BlockHashParamSchema = Type.String({ + pattern: '^(0x)?[a-fA-F0-9]{64}$', + title: 'Block hash', + description: 'Block hash', + examples: ['daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133'], +}); +export const CompiledBlockHashParam = ajv.compile(BlockHashParamSchema); + const AddressParamSchema = Type.String({ pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}', title: 'STX Address', @@ -180,7 +195,19 @@ export const CompiledPoxSignerPaginationQueryParams = ajv.compile( PoxSignerPaginationQueryParamsSchema ); -const BlockParamsSchema = Type.Object( +export const BlockParamsSchema = Type.Object( + { + height_or_hash: Type.Union([ + Type.Literal('latest'), + BlockHashParamSchema, + BlockHeightParamSchema, + ]), + }, + { additionalProperties: false } +); +export type BlockParams = Static; + +export const BurnBlockParamsSchema = Type.Object( { height_or_hash: Type.Union([ Type.Literal('latest'), @@ -190,8 +217,8 @@ const BlockParamsSchema = Type.Object( }, { additionalProperties: false } ); -export type BlockParams = Static; -export const CompiledBlockParams = ajv.compile(BlockParamsSchema); +export type BurnBlockParams = Static; +export const CompiledBurnBlockParams = ajv.compile(BurnBlockParamsSchema); const PoxCycleParamsSchema = Type.Object( { cycle_number: Type.String({ pattern: '^[0-9]+$' }) }, diff --git a/src/api/schemas/entities/block.ts b/src/api/schemas/entities/block.ts index 23d541a7b..a0146cdc4 100644 --- a/src/api/schemas/entities/block.ts +++ b/src/api/schemas/entities/block.ts @@ -80,3 +80,39 @@ export const BlockSchema = Type.Object( { title: 'Block', description: 'A block' } ); export type Block = Static; + +export const NakamotoBlockSchema = Type.Object({ + canonical: Type.Boolean({ + description: 'Set to `true` if block corresponds to the canonical chain tip', + }), + height: Type.Integer({ description: 'Height of the block' }), + hash: Type.String({ description: 'Hash representing the block' }), + block_time: Type.Integer({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + block_time_iso: Type.String({ + description: 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.', + }), + index_block_hash: Type.String({ + description: + 'The only hash that can uniquely identify an anchored block or an unconfirmed state trie', + }), + parent_block_hash: Type.String({ description: 'Hash of the parent block' }), + parent_index_block_hash: Type.String({ description: 'Index block hash of the parent block' }), + burn_block_time: Type.Integer({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + burn_block_time_iso: Type.String({ + description: 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.', + }), + burn_block_hash: Type.String({ description: 'Hash of the anchor chain block' }), + burn_block_height: Type.Integer({ description: 'Height of the anchor chain block' }), + miner_txid: Type.String({ description: 'Anchor chain transaction ID' }), + tx_count: Type.Integer({ description: 'Number of transactions included in the block' }), + execution_cost_read_count: Type.Integer({ description: 'Execution cost read count.' }), + execution_cost_read_length: Type.Integer({ description: 'Execution cost read length.' }), + execution_cost_runtime: Type.Integer({ description: 'Execution cost runtime.' }), + execution_cost_write_count: Type.Integer({ description: 'Execution cost write count.' }), + execution_cost_write_length: Type.Integer({ description: 'Execution cost write length.' }), +}); +export type NakamotoBlock = Static; diff --git a/src/api/schemas/entities/burn-blocks.ts b/src/api/schemas/entities/burn-blocks.ts new file mode 100644 index 000000000..071bf64af --- /dev/null +++ b/src/api/schemas/entities/burn-blocks.ts @@ -0,0 +1,24 @@ +import { Static, Type } from '@sinclair/typebox'; + +export const BurnBlockSchema = Type.Object({ + burn_block_time: Type.Integer({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + burn_block_time_iso: Type.String({ + description: 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.', + }), + burn_block_hash: Type.String({ description: 'Hash of the anchor chain block' }), + burn_block_height: Type.Integer({ description: 'Height of the anchor chain block' }), + stacks_blocks: Type.Array(Type.String(), { + description: 'Hashes of the Stacks blocks included in the burn block', + }), + avg_block_time: Type.Integer({ + description: + 'Average time between blocks in seconds. Returns 0 if there is only one block in the burn block.', + }), + total_tx_count: Type.Integer({ + description: + 'Total number of transactions in the Stacks blocks associated with this burn block', + }), +}); +export type BurnBlock = Static; diff --git a/src/datastore/pg-store-v2.ts b/src/datastore/pg-store-v2.ts index 36cc48035..6d4d14e41 100644 --- a/src/datastore/pg-store-v2.ts +++ b/src/datastore/pg-store-v2.ts @@ -5,6 +5,7 @@ import { TransactionPaginationQueryParams, TransactionLimitParamSchema, BlockParams, + BurnBlockParams, BlockPaginationQueryParams, SmartContractStatusParams, AddressParams, @@ -329,7 +330,7 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getBurnBlock(args: BlockParams): Promise { + async getBurnBlock(args: BurnBlockParams): Promise { return await this.sqlTransaction(async sql => { const filter = args.height_or_hash === 'latest' From 41bb0e00ecb14dc94d33a08284f986de9001b664 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Fri, 2 Aug 2024 14:54:35 +0200 Subject: [PATCH 18/56] feat: refactor `/extended/v2/smart-contracts/*` endpoints to fastify --- src/api/init.ts | 4 +- src/api/routes/microblock.ts | 2 +- src/api/routes/pox.ts | 2 +- src/api/routes/v2/helpers.ts | 5 +- src/api/routes/v2/schemas.ts | 2 +- src/api/routes/v2/smart-contracts.ts | 58 ++++++++++++--------- src/api/schemas/entities/smart-contracts.ts | 28 ++++++++++ 7 files changed, 69 insertions(+), 32 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index 7e3e1f7d7..b8f48193d 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -54,7 +54,7 @@ import { BlockRoutesV2 } from './routes/v2/blocks'; import { getReqQuery } from './query-helpers'; import { BurnBlockRoutesV2 } from './routes/v2/burn-blocks'; import { createMempoolRouter } from './routes/v2/mempool'; -import { createV2SmartContractsRouter } from './routes/v2/smart-contracts'; +import { SmartContractRoutesV2 } from './routes/v2/smart-contracts'; import { createV2AddressesRouter } from './routes/v2/addresses'; import { createPoxRouter } from './routes/v2/pox'; @@ -206,7 +206,6 @@ export async function startApiServer(opts: { '/v2', (() => { const v2 = express.Router(); - v2.use('/smart-contracts', createV2SmartContractsRouter(datastore)); v2.use('/mempool', createMempoolRouter(datastore)); v2.use('/addresses', createV2AddressesRouter(datastore)); v2.use('/pox', createPoxRouter(datastore, chainId)); @@ -381,6 +380,7 @@ export async function startApiServer(opts: { async fastify => { await fastify.register(BlockRoutesV2, { prefix: '/blocks' }); await fastify.register(BurnBlockRoutesV2, { prefix: '/burn-blocks' }); + await fastify.register(SmartContractRoutesV2, { prefix: '/smart-contracts' }); }, { prefix: '/extended/v2' } ); diff --git a/src/api/routes/microblock.ts b/src/api/routes/microblock.ts index ed0d1febe..ee10285b6 100644 --- a/src/api/routes/microblock.ts +++ b/src/api/routes/microblock.ts @@ -13,7 +13,7 @@ import { handleChainTipCache } from '../controllers/cache-controller'; import { LimitParam, OffsetParam } from '../schemas/params'; import { PaginatedResponse } from '../schemas/util'; import { MicroblockSchema } from '../schemas/entities/microblock'; -import { NotFoundError } from 'src/errors'; +import { NotFoundError } from '../../errors'; import { TransactionSchema } from '../schemas/entities/transactions'; export const MicroblockRoutes: FastifyPluginAsync< diff --git a/src/api/routes/pox.ts b/src/api/routes/pox.ts index 1a5b74d35..fbf8977a8 100644 --- a/src/api/routes/pox.ts +++ b/src/api/routes/pox.ts @@ -6,7 +6,7 @@ import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { Server } from 'node:http'; import { LimitParam, OffsetParam, UnanchoredParamSchema } from '../schemas/params'; -import { NotFoundError } from 'src/errors'; +import { NotFoundError } from '../../errors'; import { PaginatedResponse } from '../schemas/util'; import { PoolDelegation, PoolDelegationSchema } from '../schemas/entities/pox'; diff --git a/src/api/routes/v2/helpers.ts b/src/api/routes/v2/helpers.ts index e44602a69..76d6444c8 100644 --- a/src/api/routes/v2/helpers.ts +++ b/src/api/routes/v2/helpers.ts @@ -28,6 +28,7 @@ import { } from '../../../api/controllers/db-controller'; import { decodeClarityValueToRepr } from 'stacks-encoding-native-js'; import { TransactionVersion, getAddressFromPublicKey } from '@stacks/transactions'; +import { SmartContractStatusList } from '../../schemas/entities/smart-contracts'; export function parseDbNakamotoBlock(block: DbBlock): NakamotoBlock { const apiBlock: NakamotoBlock = { @@ -70,11 +71,11 @@ export function parseDbBurnBlock(block: DbBurnBlock): BurnBlock { export function parseDbSmartContractStatusArray( params: SmartContractStatusParams, status: DbSmartContractStatus[] -): SmartContractsStatusResponse { +): SmartContractStatusList { const ids = new Set( Array.isArray(params.contract_id) ? params.contract_id : [params.contract_id] ); - const response: SmartContractsStatusResponse = {}; + const response: SmartContractStatusList = {}; for (const s of status) { ids.delete(s.smart_contract_contract_id); response[s.smart_contract_contract_id] = { diff --git a/src/api/routes/v2/schemas.ts b/src/api/routes/v2/schemas.ts index b5067f445..63831a152 100644 --- a/src/api/routes/v2/schemas.ts +++ b/src/api/routes/v2/schemas.ts @@ -239,7 +239,7 @@ const PoxCycleSignerParamsSchema = Type.Object( export type PoxCycleSignerParams = Static; export const CompiledPoxCycleSignerParams = ajv.compile(PoxCycleSignerParamsSchema); -const SmartContractStatusParamsSchema = Type.Object( +export const SmartContractStatusParamsSchema = Type.Object( { contract_id: Type.Union([Type.Array(SmartContractIdParamSchema), SmartContractIdParamSchema]), }, diff --git a/src/api/routes/v2/smart-contracts.ts b/src/api/routes/v2/smart-contracts.ts index 81a57e528..315437080 100644 --- a/src/api/routes/v2/smart-contracts.ts +++ b/src/api/routes/v2/smart-contracts.ts @@ -1,30 +1,38 @@ -import * as express from 'express'; -import { PgStore } from '../../../datastore/pg-store'; -import { getETagCacheHandler, setETagCacheHeaders } from '../../controllers/cache-controller'; -import { asyncHandler } from '../../async-handler'; -import { - validRequestQuery, - CompiledSmartContractStatusParams, - SmartContractStatusParams, -} from './schemas'; +import { handleChainTipCache } from '../../controllers/cache-controller'; +import { SmartContractStatusParamsSchema } from './schemas'; import { parseDbSmartContractStatusArray } from './helpers'; +import { FastifyPluginAsync } from 'fastify'; +import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { SmartContractStatusListSchema } from '../../schemas/entities/smart-contracts'; -export function createV2SmartContractsRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - - router.get( +export const SmartContractRoutesV2: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/status', - cacheHandler, - asyncHandler(async (req, res) => { - if (!validRequestQuery(req, res, CompiledSmartContractStatusParams)) return; - const query = req.query as SmartContractStatusParams; - - const result = await db.v2.getSmartContractStatus(query); - setETagCacheHeaders(res); - res.json(parseDbSmartContractStatusArray(query, result)); - }) + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_smart_contracts_status', + summary: 'Get smart contracts status', + description: `Retrieves the deployment status of multiple smart contracts.`, + tags: ['Smart Contracts'], + querystring: SmartContractStatusParamsSchema, + response: { + 200: SmartContractStatusListSchema, + }, + }, + }, + async (req, reply) => { + const query = req.query; + const result = await fastify.db.v2.getSmartContractStatus(query); + const resultArray = parseDbSmartContractStatusArray(query, result); + await reply.send(resultArray); + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/schemas/entities/smart-contracts.ts b/src/api/schemas/entities/smart-contracts.ts index a7c393e00..c521696d5 100644 --- a/src/api/schemas/entities/smart-contracts.ts +++ b/src/api/schemas/entities/smart-contracts.ts @@ -17,3 +17,31 @@ export const SmartContractSchema = Type.Object( } ); export type SmartContract = Static; + +export const SmartContractStatusFoundSchema = Type.Object({ + found: Type.Literal(true), + result: Type.Object({ + status: Type.String({ + description: 'Smart contract deployment transaction status', + }), + tx_id: Type.String({ description: 'Deployment transaction ID' }), + contract_id: Type.String({ description: 'Smart contract ID' }), + block_height: Type.Optional( + Type.Integer({ + description: 'Height of the transaction confirmation block', + }) + ), + }), +}); +export type SmartContractStatusFound = Static; + +export const SmartContractStatusNotFoundSchema = Type.Object({ + found: Type.Literal(false), +}); +export type SmartContractStatusNotFound = Static; + +export const SmartContractStatusListSchema = Type.Record( + Type.String({ description: 'Smart contract ID' }), + Type.Union([SmartContractStatusFoundSchema, SmartContractStatusNotFoundSchema]) +); +export type SmartContractStatusList = Static; From 92204657eec8dc5671f1dee65b37b2ffdea6969d Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Fri, 2 Aug 2024 15:06:36 +0200 Subject: [PATCH 19/56] feat: refactor `/extended/v2/mempool/*` endpoints to fastify --- src/api/init.ts | 4 +-- src/api/routes/v2/mempool.ts | 65 ++++++++++++++++++++++++------------ 2 files changed, 46 insertions(+), 23 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index b8f48193d..141da134d 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -53,7 +53,7 @@ import { import { BlockRoutesV2 } from './routes/v2/blocks'; import { getReqQuery } from './query-helpers'; import { BurnBlockRoutesV2 } from './routes/v2/burn-blocks'; -import { createMempoolRouter } from './routes/v2/mempool'; +import { MempoolRoutesV2 } from './routes/v2/mempool'; import { SmartContractRoutesV2 } from './routes/v2/smart-contracts'; import { createV2AddressesRouter } from './routes/v2/addresses'; import { createPoxRouter } from './routes/v2/pox'; @@ -206,7 +206,6 @@ export async function startApiServer(opts: { '/v2', (() => { const v2 = express.Router(); - v2.use('/mempool', createMempoolRouter(datastore)); v2.use('/addresses', createV2AddressesRouter(datastore)); v2.use('/pox', createPoxRouter(datastore, chainId)); return v2; @@ -381,6 +380,7 @@ export async function startApiServer(opts: { await fastify.register(BlockRoutesV2, { prefix: '/blocks' }); await fastify.register(BurnBlockRoutesV2, { prefix: '/burn-blocks' }); await fastify.register(SmartContractRoutesV2, { prefix: '/smart-contracts' }); + await fastify.register(MempoolRoutesV2, { prefix: '/mempool' }); }, { prefix: '/extended/v2' } ); diff --git a/src/api/routes/v2/mempool.ts b/src/api/routes/v2/mempool.ts index cdd1e6b19..9147f8cad 100644 --- a/src/api/routes/v2/mempool.ts +++ b/src/api/routes/v2/mempool.ts @@ -1,13 +1,23 @@ -import * as express from 'express'; -import { asyncHandler } from '../../async-handler'; -import { - ETagType, - getETagCacheHandler, - setETagCacheHeaders, -} from '../../controllers/cache-controller'; -import { PgStore } from '../../../datastore/pg-store'; +import { handleMempoolCache } from '../../controllers/cache-controller'; import { DbMempoolFeePriority, DbTxTypeId } from '../../../datastore/common'; -import { MempoolFeePriorities } from '../../../../docs/generated'; +import { FastifyPluginAsync } from 'fastify'; +import { Static, Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; + +const MempoolFeePrioritiySchema = Type.Object({ + no_priority: Type.Integer(), + low_priority: Type.Integer(), + medium_priority: Type.Integer(), + high_priority: Type.Integer(), +}); + +const MempoolFeePrioritiesSchema = Type.Object({ + all: MempoolFeePrioritiySchema, + token_transfer: Type.Optional(MempoolFeePrioritiySchema), + contract_call: Type.Optional(MempoolFeePrioritiySchema), + smart_contract: Type.Optional(MempoolFeePrioritiySchema), +}); +type MempoolFeePriorities = Static; function parseMempoolFeePriority(fees: DbMempoolFeePriority[]): MempoolFeePriorities { const out: MempoolFeePriorities = { @@ -38,18 +48,31 @@ function parseMempoolFeePriority(fees: DbMempoolFeePriority[]): MempoolFeePriori return out; } -export function createMempoolRouter(db: PgStore): express.Router { - const router = express.Router(); - const mempoolCacheHandler = getETagCacheHandler(db, ETagType.mempool); - - router.get( +export const MempoolRoutesV2: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/fees', - mempoolCacheHandler, - asyncHandler(async (req, res, next) => { - setETagCacheHeaders(res); - res.status(200).json(parseMempoolFeePriority(await db.getMempoolFeePriority())); - }) + { + preHandler: handleMempoolCache, + schema: { + operationId: 'get_mempool_fee_priorities', + summary: 'Get mempool transaction fee priorities', + description: `Returns estimated fee priorities (in micro-STX) for all transactions that are currently in the mempool. Also returns priorities separated by transaction type.`, + tags: ['Mempool'], + response: { + 200: MempoolFeePrioritiesSchema, + }, + }, + }, + async (_req, reply) => { + const feePriority = await fastify.db.getMempoolFeePriority(); + const result = parseMempoolFeePriority(feePriority); + await reply.send(result); + } ); - return router; -} + await Promise.resolve(); +}; From 40924eae9e8bf6c103af04d2e9ef87171606885a Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Fri, 2 Aug 2024 16:05:03 +0200 Subject: [PATCH 20/56] feat: refactor `/extended/v2/pox/*` endpoints to fastify --- src/api/init.ts | 4 +- src/api/routes/v2/pox.ts | 268 +++++++++++++++++++------------- src/api/schemas/entities/pox.ts | 34 ++++ src/datastore/pg-store-v2.ts | 30 ++-- 4 files changed, 218 insertions(+), 118 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index 141da134d..0d6f03062 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -56,7 +56,7 @@ import { BurnBlockRoutesV2 } from './routes/v2/burn-blocks'; import { MempoolRoutesV2 } from './routes/v2/mempool'; import { SmartContractRoutesV2 } from './routes/v2/smart-contracts'; import { createV2AddressesRouter } from './routes/v2/addresses'; -import { createPoxRouter } from './routes/v2/pox'; +import { PoxRoutesV2 } from './routes/v2/pox'; import Fastify, { FastifyInstance } from 'fastify'; import FastifyMetrics from 'fastify-metrics'; @@ -207,7 +207,6 @@ export async function startApiServer(opts: { (() => { const v2 = express.Router(); v2.use('/addresses', createV2AddressesRouter(datastore)); - v2.use('/pox', createPoxRouter(datastore, chainId)); return v2; })() ); @@ -381,6 +380,7 @@ export async function startApiServer(opts: { await fastify.register(BurnBlockRoutesV2, { prefix: '/burn-blocks' }); await fastify.register(SmartContractRoutesV2, { prefix: '/smart-contracts' }); await fastify.register(MempoolRoutesV2, { prefix: '/mempool' }); + await fastify.register(PoxRoutesV2, { prefix: '/pox' }); }, { prefix: '/extended/v2' } ); diff --git a/src/api/routes/v2/pox.ts b/src/api/routes/v2/pox.ts index 2647339b8..d6fb15f9f 100644 --- a/src/api/routes/v2/pox.ts +++ b/src/api/routes/v2/pox.ts @@ -1,165 +1,223 @@ import * as express from 'express'; -import { getETagCacheHandler, setETagCacheHeaders } from '../../controllers/cache-controller'; -import { asyncHandler } from '../../async-handler'; -import { PgStore } from '../../../datastore/pg-store'; -import { - CompiledPoxCyclePaginationQueryParams, - CompiledPoxCycleParams, - CompiledPoxCycleSignerParams, - CompiledPoxSignerPaginationQueryParams, - PoxCyclePaginationQueryParams, - PoxCycleParams, - PoxCycleSignerParams, - PoxSignerPaginationQueryParams, - validRequestParams, - validRequestQuery, -} from './schemas'; +import { handleChainTipCache } from '../../controllers/cache-controller'; +import { parseDbPoxCycle, parseDbPoxSigner, parseDbPoxSignerStacker } from './helpers'; +import { InvalidRequestError, NotFoundError } from '../../../errors'; +import { getChainIDNetwork } from '../../../helpers'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam } from '../../schemas/params'; +import { ResourceType } from '../../pagination'; +import { PaginatedResponse } from '../../schemas/util'; import { - PoxCycleListResponse, - PoxCycleSignerStackersListResponse, - PoxCycleSignersListResponse, + PoxCycle, + PoxCycleSchema, PoxSigner, -} from '@stacks/stacks-blockchain-api-types'; -import { parseDbPoxCycle, parseDbPoxSigner, parseDbPoxSignerStacker } from './helpers'; -import { InvalidRequestError } from '../../../errors'; -import { ChainID, getChainIDNetwork } from '../../../helpers'; + PoxSignerSchema, + PoxStacker, + PoxStackerSchema, +} from '../../schemas/entities/pox'; -export function createPoxRouter(db: PgStore, chainId: ChainID): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - const isMainnet = getChainIDNetwork(chainId) === 'mainnet'; +export const PoxRoutesV2: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + const isMainnet = getChainIDNetwork(fastify.chainId) === 'mainnet'; - router.get( + fastify.get( '/cycles', - cacheHandler, - asyncHandler(async (req, res, next) => { - if (!validRequestQuery(req, res, CompiledPoxCyclePaginationQueryParams)) return; - const query = req.query as PoxCyclePaginationQueryParams; - - const cycles = await db.v2.getPoxCycles(query); - const response: PoxCycleListResponse = { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_pox_cycles', + summary: 'Get PoX cycles', + description: `Retrieves a list of PoX cycles`, + tags: ['Proof of Transfer'], + querystring: Type.Object({ + limit: LimitParam(ResourceType.PoxCycle), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(PoxCycleSchema), + }, + }, + }, + async (req, reply) => { + const query = req.query; + const cycles = await fastify.db.v2.getPoxCycles(query); + const results: PoxCycle[] = cycles.results.map(c => parseDbPoxCycle(c)); + await reply.send({ limit: cycles.limit, offset: cycles.offset, total: cycles.total, - results: cycles.results.map(c => parseDbPoxCycle(c)), - }; - setETagCacheHeaders(res); - res.json(response); - }) + results: results, + }); + } ); - router.get( + fastify.get( '/cycles/:cycle_number', - cacheHandler, - asyncHandler(async (req, res, next) => { - if (!validRequestParams(req, res, CompiledPoxCycleParams)) return; - const params = req.params as PoxCycleParams; - - const cycle = await db.v2.getPoxCycle(params); + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_pox_cycle', + summary: 'Get PoX cycle', + description: `Retrieves details for a PoX cycle`, + tags: ['Proof of Transfer'], + params: Type.Object({ + cycle_number: Type.Integer({ description: 'PoX cycle number' }), + }), + response: { + 200: PoxCycleSchema, + }, + }, + }, + async (req, reply) => { + const params = req.params; + const cycle = await fastify.db.v2.getPoxCycle(params); if (!cycle) { - res.status(404).json({ error: `Not found` }); - return; + throw new NotFoundError(); } - setETagCacheHeaders(res); - res.json(parseDbPoxCycle(cycle)); - }) + await reply.send(cycle); + } ); - router.get( + fastify.get( '/cycles/:cycle_number/signers', - cacheHandler, - asyncHandler(async (req, res, next) => { - if ( - !validRequestParams(req, res, CompiledPoxCycleParams) || - !validRequestQuery(req, res, CompiledPoxSignerPaginationQueryParams) - ) - return; - const params = req.params as PoxCycleParams; - const query = req.query as PoxSignerPaginationQueryParams; + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_pox_cycle_signers', + summary: 'Get signers in PoX cycle', + description: `Retrieves a list of signers in a PoX cycle`, + tags: ['Proof of Transfer'], + params: Type.Object({ + cycle_number: Type.Integer({ description: 'PoX cycle number' }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Signer), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(PoxSignerSchema), + }, + }, + }, + async (req, reply) => { + const params = req.params; + const query = req.query; try { - const { limit, offset, results, total } = await db.v2.getPoxCycleSigners({ + const { limit, offset, results, total } = await fastify.db.v2.getPoxCycleSigners({ ...params, ...query, }); - const response: PoxCycleSignersListResponse = { + const signers: PoxSigner[] = results.map(r => parseDbPoxSigner(r, isMainnet)); + await reply.send({ limit, offset, total, - results: results.map(r => parseDbPoxSigner(r, isMainnet)), - }; - setETagCacheHeaders(res); - res.json(response); + results: signers, + }); } catch (error) { if (error instanceof InvalidRequestError) { - res.status(404).json({ errors: error.message }); - return; + throw new NotFoundError(error.message); } throw error; } - }) + } ); - router.get( + fastify.get( '/cycles/:cycle_number/signers/:signer_key', - cacheHandler, - asyncHandler(async (req, res, next) => { - if (!validRequestParams(req, res, CompiledPoxCycleSignerParams)) return; - const params = req.params as PoxCycleSignerParams; - + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_pox_cycle_signer', + summary: 'Get signer in PoX cycle', + description: `Retrieves details for a signer in a PoX cycle`, + tags: ['Proof of Transfer'], + params: Type.Object({ + cycle_number: Type.Integer({ description: 'PoX cycle number' }), + signer_key: Type.String({ + description: 'Signer key', + examples: ['0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d'], + }), + }), + querystring: Type.Object({}), + response: { + 200: PoxSignerSchema, + }, + }, + }, + async (req, reply) => { + const params = req.params; try { - const signer = await db.v2.getPoxCycleSigner(params); + const signer = await fastify.db.v2.getPoxCycleSigner(params); if (!signer) { - res.status(404).json({ error: `Not found` }); - return; + throw new NotFoundError(); } const response: PoxSigner = parseDbPoxSigner(signer, isMainnet); - setETagCacheHeaders(res); - res.json(response); + await reply.send(response); } catch (error) { if (error instanceof InvalidRequestError) { - res.status(404).json({ errors: error.message }); - return; + throw new NotFoundError(error.message); } throw error; } - }) + } ); - router.get( + fastify.get( '/cycles/:cycle_number/signers/:signer_key/stackers', - cacheHandler, - asyncHandler(async (req, res, next) => { - if ( - !validRequestParams(req, res, CompiledPoxCycleSignerParams) || - !validRequestQuery(req, res, CompiledPoxSignerPaginationQueryParams) - ) - return; - const params = req.params as PoxCycleSignerParams; - const query = req.query as PoxSignerPaginationQueryParams; + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_pox_cycle_signer_stackers', + summary: 'Get stackers for signer in PoX cycle', + description: `Retrieves a list of stackers for a signer in a PoX cycle`, + tags: ['Proof of Transfer'], + params: Type.Object({ + cycle_number: Type.Integer({ description: 'PoX cycle number' }), + signer_key: Type.String({ + description: 'Signer key', + examples: ['0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d'], + }), + }), + querystring: Type.Object({ + limit: LimitParam(ResourceType.Stacker), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(PoxStackerSchema), + }, + }, + }, + async (req, reply) => { + const params = req.params; + const query = req.query; try { - const { limit, offset, results, total } = await db.v2.getPoxCycleSignerStackers({ + const { limit, offset, results, total } = await fastify.db.v2.getPoxCycleSignerStackers({ ...params, ...query, }); - const response: PoxCycleSignerStackersListResponse = { + const stackers: PoxStacker[] = results.map(r => parseDbPoxSignerStacker(r)); + await reply.send({ limit, offset, total, - results: results.map(r => parseDbPoxSignerStacker(r)), - }; - setETagCacheHeaders(res); - res.json(response); + results: stackers, + }); } catch (error) { if (error instanceof InvalidRequestError) { - res.status(404).json({ errors: error.message }); - return; + throw new NotFoundError(error.message); } throw error; } - }) + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/schemas/entities/pox.ts b/src/api/schemas/entities/pox.ts index 56636ed40..8739fb2ef 100644 --- a/src/api/schemas/entities/pox.ts +++ b/src/api/schemas/entities/pox.ts @@ -25,3 +25,37 @@ export const PoolDelegationSchema = Type.Object({ }), }); export type PoolDelegation = Static; + +export const PoxCycleSchema = Type.Object({ + block_height: Type.Integer(), + index_block_hash: Type.String(), + cycle_number: Type.Integer(), + total_weight: Type.Integer(), + total_stacked_amount: Type.String(), + total_signers: Type.Integer(), +}); +export type PoxCycle = Static; + +export const PoxSignerSchema = Type.Object({ + signing_key: Type.String(), + signer_address: Type.String({ description: 'The Stacks address derived from the signing_key.' }), + weight: Type.Integer(), + stacked_amount: Type.String(), + weight_percent: Type.Number(), + stacked_amount_percent: Type.Number(), + solo_stacker_count: Type.Integer({ + description: 'The number of solo stackers associated with this signer.', + }), + pooled_stacker_count: Type.Integer({ + description: 'The number of pooled stackers associated with this signer.', + }), +}); +export type PoxSigner = Static; + +export const PoxStackerSchema = Type.Object({ + stacker_address: Type.String(), + stacked_amount: Type.String(), + pox_address: Type.String(), + stacker_type: Type.Enum({ solo: 'solo', pooled: 'pooled' }), +}); +export type PoxStacker = Static; diff --git a/src/datastore/pg-store-v2.ts b/src/datastore/pg-store-v2.ts index 6d4d14e41..b3f582220 100644 --- a/src/datastore/pg-store-v2.ts +++ b/src/datastore/pg-store-v2.ts @@ -608,7 +608,7 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getPoxCycle(args: PoxCycleParams): Promise { + async getPoxCycle(args: { cycle_number: number }): Promise { return this.sqlTransaction(async sql => { const results = await sql` SELECT @@ -622,13 +622,15 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getPoxCycleSigners( - args: PoxCycleParams & PoxSignerPaginationQueryParams - ): Promise> { + async getPoxCycleSigners(args: { + cycle_number: number; + limit: number; + offset: number; + }): Promise> { return this.sqlTransaction(async sql => { const limit = args.limit ?? PoxSignerLimitParamSchema.default; const offset = args.offset ?? 0; - const cycleNumber = parseInt(args.cycle_number); + const cycleNumber = args.cycle_number; const cycleCheck = await sql`SELECT cycle_number FROM pox_cycles WHERE cycle_number = ${args.cycle_number} LIMIT 1`; if (cycleCheck.count === 0) @@ -692,10 +694,13 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getPoxCycleSigner(args: PoxCycleSignerParams): Promise { + async getPoxCycleSigner(args: { + cycle_number: number; + signer_key: string; + }): Promise { return this.sqlTransaction(async sql => { const signerKey = has0xPrefix(args.signer_key) ? args.signer_key : '0x' + args.signer_key; - const cycleNumber = parseInt(args.cycle_number); + const cycleNumber = args.cycle_number; const cycleCheck = await sql`SELECT cycle_number FROM pox_cycles WHERE cycle_number = ${cycleNumber} LIMIT 1`; if (cycleCheck.count === 0) @@ -753,14 +758,17 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getPoxCycleSignerStackers( - args: PoxCycleSignerParams & PoxSignerPaginationQueryParams - ): Promise> { + async getPoxCycleSignerStackers(args: { + cycle_number: number; + signer_key: string; + limit: number; + offset: number; + }): Promise> { return this.sqlTransaction(async sql => { const limit = args.limit ?? PoxSignerLimitParamSchema.default; const offset = args.offset ?? 0; const signerKey = has0xPrefix(args.signer_key) ? args.signer_key : '0x' + args.signer_key; - const cycleNumber = parseInt(args.cycle_number); + const cycleNumber = args.cycle_number; const cycleCheck = await sql` SELECT cycle_number FROM pox_cycles WHERE cycle_number = ${cycleNumber} LIMIT 1 `; From 705a58943429c4afa5559c82ee48dc5879b724be Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Fri, 2 Aug 2024 16:40:55 +0200 Subject: [PATCH 21/56] feat: refactor `/extended/v2/addresses/*` endpoints to fastify --- src/api/init.ts | 26 +----- src/api/routes/v2/addresses.ts | 148 ++++++++++++++++++--------------- src/api/routes/v2/helpers.ts | 4 +- src/api/routes/v2/schemas.ts | 4 +- src/datastore/pg-store-v2.ts | 9 +- 5 files changed, 95 insertions(+), 96 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index 0d6f03062..2eab01a54 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -55,7 +55,7 @@ import { getReqQuery } from './query-helpers'; import { BurnBlockRoutesV2 } from './routes/v2/burn-blocks'; import { MempoolRoutesV2 } from './routes/v2/mempool'; import { SmartContractRoutesV2 } from './routes/v2/smart-contracts'; -import { createV2AddressesRouter } from './routes/v2/addresses'; +import { AddressRoutesV2 } from './routes/v2/addresses'; import { PoxRoutesV2 } from './routes/v2/pox'; import Fastify, { FastifyInstance } from 'fastify'; @@ -191,29 +191,6 @@ export async function startApiServer(opts: { res.send(errObj).status(404); }); - // Setup extended API routes - app.use( - '/extended', - (() => { - const router = express.Router(); - router.use(cors()); - router.use((req, res, next) => { - // Set caching on all routes to be disabled by default, individual routes can override - res.set('Cache-Control', 'no-store'); - next(); - }); - router.use( - '/v2', - (() => { - const v2 = express.Router(); - v2.use('/addresses', createV2AddressesRouter(datastore)); - return v2; - })() - ); - return router; - })() - ); - // Setup direct proxy to core-node RPC endpoints (/v2) // pricing endpoint app.use( @@ -381,6 +358,7 @@ export async function startApiServer(opts: { await fastify.register(SmartContractRoutesV2, { prefix: '/smart-contracts' }); await fastify.register(MempoolRoutesV2, { prefix: '/mempool' }); await fastify.register(PoxRoutesV2, { prefix: '/pox' }); + await fastify.register(AddressRoutesV2, { prefix: '/addresses' }); }, { prefix: '/extended/v2' } ); diff --git a/src/api/routes/v2/addresses.ts b/src/api/routes/v2/addresses.ts index 16b4436d9..7b56e8be4 100644 --- a/src/api/routes/v2/addresses.ts +++ b/src/api/routes/v2/addresses.ts @@ -1,100 +1,118 @@ -import * as express from 'express'; -import { PgStore } from '../../../datastore/pg-store'; -import { - getETagCacheHandler, - setETagCacheHeaders, -} from '../../../api/controllers/cache-controller'; -import { asyncHandler } from '../../async-handler'; -import { - AddressParams, - AddressTransactionParams, - CompiledAddressParams, - CompiledAddressTransactionParams, - CompiledTransactionPaginationQueryParams, - TransactionPaginationQueryParams, - validRequestParams, - validRequestQuery, -} from './schemas'; +import { handleChainTipCache } from '../../../api/controllers/cache-controller'; +import { AddressParamsSchema, AddressTransactionParamsSchema } from './schemas'; import { parseDbAddressTransactionTransfer, parseDbTxWithAccountTransferSummary } from './helpers'; +import { InvalidRequestError, NotFoundError } from '../../../errors'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { LimitParam, OffsetParam } from '../../schemas/params'; +import { ResourceType } from '../../pagination'; +import { PaginatedResponse } from '../../schemas/util'; import { - AddressTransactionEventListResponse, - AddressTransactionsV2ListResponse, -} from '../../../../docs/generated'; -import { InvalidRequestError } from '../../../errors'; - -export function createV2AddressesRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); + AddressTransaction, + AddressTransactionEvent, + AddressTransactionEventSchema, + AddressTransactionSchema, +} from '../../schemas/entities/addresses'; - router.get( +export const AddressRoutesV2: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/:address/transactions', - cacheHandler, - asyncHandler(async (req, res) => { - if ( - !validRequestParams(req, res, CompiledAddressParams) || - !validRequestQuery(req, res, CompiledTransactionPaginationQueryParams) - ) - return; - const params = req.params as AddressParams; - const query = req.query as TransactionPaginationQueryParams; + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_address_transactions', + summary: 'Get address transactions', + description: `Retrieves a paginated list of confirmed transactions sent or received by a STX address or Smart Contract ID, alongside the total amount of STX sent or received and the number of STX, FT and NFT transfers contained within each transaction. + + More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types).`, + tags: ['Transactions'], + params: AddressParamsSchema, + querystring: Type.Object({ + limit: LimitParam(ResourceType.Tx), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(AddressTransactionSchema), + }, + }, + }, + async (req, reply) => { + const params = req.params; + const query = req.query; try { - const { limit, offset, results, total } = await db.v2.getAddressTransactions({ + const { limit, offset, results, total } = await fastify.db.v2.getAddressTransactions({ ...params, ...query, }); - const response: AddressTransactionsV2ListResponse = { + const transfers: AddressTransaction[] = results.map(r => + parseDbTxWithAccountTransferSummary(r) + ); + await reply.send({ limit, offset, total, - results: results.map(r => parseDbTxWithAccountTransferSummary(r)), - }; - setETagCacheHeaders(res); - res.json(response); + results: transfers, + }); } catch (error) { if (error instanceof InvalidRequestError) { - res.status(404).json({ errors: error.message }); - return; + throw new NotFoundError(error.message); } throw error; } - }) + } ); - router.get( + fastify.get( '/:address/transactions/:tx_id/events', - cacheHandler, - asyncHandler(async (req, res) => { - if ( - !validRequestParams(req, res, CompiledAddressTransactionParams) || - !validRequestQuery(req, res, CompiledTransactionPaginationQueryParams) - ) - return; - const params = req.params as AddressTransactionParams; - const query = req.query as TransactionPaginationQueryParams; + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_address_transaction_events', + summary: 'Get events for an address transaction', + description: `Retrieves a paginated list of all STX, FT and NFT events concerning a STX address or Smart Contract ID within a specific transaction.`, + tags: ['Transactions'], + params: AddressTransactionParamsSchema, + querystring: Type.Object({ + limit: LimitParam(ResourceType.Tx), + offset: OffsetParam(), + }), + response: { + 200: PaginatedResponse(AddressTransactionEventSchema), + }, + }, + }, + async (req, reply) => { + const params = req.params; + const query = req.query; try { - const { limit, offset, results, total } = await db.v2.getAddressTransactionEvents({ + const { limit, offset, results, total } = await fastify.db.v2.getAddressTransactionEvents({ ...params, ...query, }); - const response: AddressTransactionEventListResponse = { + const transfers: AddressTransactionEvent[] = results.map(r => + parseDbAddressTransactionTransfer(r) + ); + await reply.send({ limit, offset, total, - results: results.map(r => parseDbAddressTransactionTransfer(r)), - }; - setETagCacheHeaders(res); - res.json(response); + results: transfers, + }); } catch (error) { if (error instanceof InvalidRequestError) { - res.status(404).json({ errors: error.message }); - return; + throw new NotFoundError(error.message); } throw error; } - }) + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/v2/helpers.ts b/src/api/routes/v2/helpers.ts index 76d6444c8..8b11a886c 100644 --- a/src/api/routes/v2/helpers.ts +++ b/src/api/routes/v2/helpers.ts @@ -1,5 +1,4 @@ import { - AddressTransaction, AddressTransactionEvent, BurnBlock, NakamotoBlock, @@ -29,6 +28,7 @@ import { import { decodeClarityValueToRepr } from 'stacks-encoding-native-js'; import { TransactionVersion, getAddressFromPublicKey } from '@stacks/transactions'; import { SmartContractStatusList } from '../../schemas/entities/smart-contracts'; +import { AddressTransaction, AddressTransactionWithTransfers } from '../../schemas/entities/addresses'; export function parseDbNakamotoBlock(block: DbBlock): NakamotoBlock { const apiBlock: NakamotoBlock = { @@ -96,7 +96,7 @@ export function parseDbTxWithAccountTransferSummary( tx: DbTxWithAddressTransfers ): AddressTransaction { return { - tx: parseDbTx(tx) as import('@stacks/stacks-blockchain-api-types').Transaction, + tx: parseDbTx(tx), stx_sent: tx.stx_sent.toString(), stx_received: tx.stx_received.toString(), events: { diff --git a/src/api/routes/v2/schemas.ts b/src/api/routes/v2/schemas.ts index 63831a152..7a61dc158 100644 --- a/src/api/routes/v2/schemas.ts +++ b/src/api/routes/v2/schemas.ts @@ -248,14 +248,14 @@ export const SmartContractStatusParamsSchema = Type.Object( export type SmartContractStatusParams = Static; export const CompiledSmartContractStatusParams = ajv.compile(SmartContractStatusParamsSchema); -const AddressParamsSchema = Type.Object( +export const AddressParamsSchema = Type.Object( { address: Type.Union([AddressParamSchema, SmartContractIdParamSchema]) }, { additionalProperties: false } ); export type AddressParams = Static; export const CompiledAddressParams = ajv.compile(AddressParamsSchema); -const AddressTransactionParamsSchema = Type.Object( +export const AddressTransactionParamsSchema = Type.Object( { address: Type.Union([AddressParamSchema, SmartContractIdParamSchema]), tx_id: TransactionIdParamSchema, diff --git a/src/datastore/pg-store-v2.ts b/src/datastore/pg-store-v2.ts index b3f582220..6b05d81ae 100644 --- a/src/datastore/pg-store-v2.ts +++ b/src/datastore/pg-store-v2.ts @@ -527,9 +527,12 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getAddressTransactionEvents( - args: AddressTransactionParams & TransactionPaginationQueryParams - ): Promise> { + async getAddressTransactionEvents(args: { + limit: number; + offset: number; + tx_id: string; + address: string; + }): Promise> { return await this.sqlTransaction(async sql => { await assertTxIdExists(sql, args.tx_id); const limit = args.limit ?? TransactionLimitParamSchema.default; From 5fd969d439ddf3f3a14f2e49b9c1ec68da7a58b8 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 5 Aug 2024 11:08:29 +0200 Subject: [PATCH 22/56] feat: refactor `/v1/names/*` endpoints to fastify --- src/api/init.ts | 10 +- src/api/routes/bns/names.ts | 319 ++++++++++++++++++++++++++++-------- 2 files changed, 256 insertions(+), 73 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index 2eab01a54..de240ec28 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -24,7 +24,7 @@ import { InvalidRequestError } from '../errors'; import { BurnchainRoutes } from './routes/burnchain'; import { createBnsNamespacesRouter } from './routes/bns/namespaces'; import { createBnsPriceRouter } from './routes/bns/pricing'; -import { createBnsNamesRouter } from './routes/bns/names'; +import { BnsNameRoutes } from './routes/bns/names'; import { createBnsAddressesRouter } from './routes/bns/addresses'; import * as pathToRegex from 'path-to-regexp'; import * as expressListEndpoints from 'express-list-endpoints'; @@ -228,7 +228,6 @@ export async function startApiServer(opts: { const router = express.Router(); router.use(cors()); router.use('/namespaces', createBnsNamespacesRouter(datastore)); - router.use('/names', createBnsNamesRouter(datastore, chainId)); router.use('/addresses', createBnsAddressesRouter(datastore, chainId)); return router; })() @@ -363,6 +362,13 @@ export async function startApiServer(opts: { { prefix: '/extended/v2' } ); + await fastify.register( + async fastify => { + await fastify.register(BnsNameRoutes, '/names'); + }, + { prefix: '/v1' } + ); + // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without // introducing a bunch of problamatic middleware side-effects. diff --git a/src/api/routes/bns/names.ts b/src/api/routes/bns/names.ts index c8f552816..f7250a408 100644 --- a/src/api/routes/bns/names.ts +++ b/src/api/routes/bns/names.ts @@ -1,15 +1,11 @@ -import * as express from 'express'; -import { asyncHandler } from '../../async-handler'; -import { PgStore } from '../../../datastore/pg-store'; import { parsePagingQueryInput } from '../../../api/pagination'; -import { isUnanchoredRequest } from '../../query-helpers'; import { bnsBlockchain, BnsErrors } from '../../../event-stream/bns/bns-constants'; import { BnsGetNameInfoResponse } from '@stacks/stacks-blockchain-api-types'; -import { ChainID } from '../../../helpers'; -import { - getETagCacheHandler, - setETagCacheHeaders, -} from '../../../api/controllers/cache-controller'; +import { handleChainTipCache } from '../../../api/controllers/cache-controller'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { UnanchoredParamSchema } from '../../schemas/params'; class NameRedirectError extends Error { constructor(message: string) { @@ -19,95 +15,280 @@ class NameRedirectError extends Error { } } -export function createBnsNamesRouter(db: PgStore, chainId: ChainID): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - - router.get( +export const BnsNameRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/:name/zonefile/:zoneFileHash', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_historical_zone_file', + summary: 'Get Historical Zone File', + description: `Retrieves the historical zonefile specified by the username and zone hash.`, + tags: ['Names'], + params: Type.Object({ + name: Type.String({ description: 'fully-qualified name', examples: ['muneeb.id'] }), + zoneFileHash: Type.String({ + description: 'zone file hash', + examples: ['b100a68235244b012854a95f9114695679002af9'], + }), + }), + querystring: Type.Object({ + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Object( + { + zonefile: Type.String(), + }, + { + title: 'BnsFetchHistoricalZoneFileResponse', + description: + 'Fetches the historical zonefile specified by the username and zone hash.', + } + ), + '4xx': Type.Object({ error: Type.String() }, { title: 'BnsError', description: 'Error' }), + }, + }, + }, + async (req, reply) => { const { name, zoneFileHash } = req.params; - const includeUnanchored = isUnanchoredRequest(req, res, next); - const zonefile = await db.getHistoricalZoneFile({ + const includeUnanchored = req.query.unanchored; + const zonefile = await fastify.db.getHistoricalZoneFile({ name: name, zoneFileHash: zoneFileHash, includeUnanchored, - chainId, + chainId: fastify.chainId, }); if (zonefile.found) { - setETagCacheHeaders(res); - res.json(zonefile.result); + await reply.send(zonefile.result); } else { - res.status(404).json({ error: 'No such name or zonefile' }); + await reply.status(404).send({ error: 'No such name or zonefile' }); } - }) + } ); - router.get( + fastify.get( '/:name/subdomains', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'fetch_subdomains_list_for_name', + summary: 'Get Name Subdomains', + description: `Retrieves the list of subdomains for a specific name`, + tags: ['Names'], + params: Type.Object({ + name: Type.String({ description: 'fully-qualified name', examples: ['id.blockstack'] }), + }), + querystring: Type.Object({ + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Array(Type.String({ pattern: '^([a-z0-9-_.+]{3,37})$' }), { + title: 'GetAllSubdomainsInName', + description: 'Fetch a list of subdomains in a name.', + examples: [ + [ + 'address_test.id.blockstack', + 'previous_subdomain.id.blockstack', + 'subdomain.id.blockstack', + 'zonefile_test.id.blockstack', + 'zone_test.id.blockstack', + ], + ], + }), + }, + }, + }, + async (req, reply) => { const { name } = req.params; - const includeUnanchored = isUnanchoredRequest(req, res, next); - const subdomainsList = await db.getSubdomainsListInName({ name, includeUnanchored, chainId }); - setETagCacheHeaders(res); - res.json(subdomainsList.results); - }) + const includeUnanchored = req.query.unanchored; + const subdomainsList = await fastify.db.getSubdomainsListInName({ + name, + includeUnanchored, + chainId: fastify.chainId, + }); + await reply.send(subdomainsList.results); + } ); - router.get( + fastify.get( '/:name/zonefile', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'fetch_zone_file', + summary: 'Get Zone File', + description: `Retrieves a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.`, + tags: ['Names'], + params: Type.Object({ + name: Type.String({ description: 'fully-qualified name', examples: ['bar.test'] }), + }), + querystring: Type.Object({ + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Object( + { + zonefile: Type.String({ + pattern: '.+', + examples: [ + '$ORIGIN bar.test\n$TTL 3600\n_https._tcp URI 10 1 "https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json"\n', + ], + }), + }, + { + title: 'BnsFetchFileZoneResponse', + description: + "Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.", + } + ), + '4xx': Type.Object( + { + error: Type.String({ + examples: ['Invalid name or subdomain', 'No zone file for name'], + }), + }, + { + title: 'BnsError', + description: 'Error', + } + ), + }, + }, + }, + async (req, reply) => { const { name } = req.params; - const includeUnanchored = isUnanchoredRequest(req, res, next); - const zonefile = await db.getLatestZoneFile({ name: name, includeUnanchored }); + const includeUnanchored = req.query.unanchored; + const zonefile = await fastify.db.getLatestZoneFile({ name: name, includeUnanchored }); if (zonefile.found) { - setETagCacheHeaders(res); - res.json(zonefile.result); + await reply.send(zonefile.result); } else { - res.status(404).json({ error: 'No such name or zonefile does not exist' }); + await reply.status(404).send({ error: 'No such name or zonefile does not exist' }); } - }) + } ); - router.get( + fastify.get( '/', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_all_names', + summary: 'Get All Names', + description: `Retrieves a list of all names known to the node.`, + tags: ['Names'], + querystring: Type.Object({ + unanchored: UnanchoredParamSchema, + page: Type.Optional( + Type.Integer({ + minimum: 0, + default: 0, + description: + "names are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter.", + }) + ), + }), + response: { + 200: Type.Array(Type.String({ pattern: '^([a-z0-9\\-_.+]{3,37})$' }), { + title: 'BnsGetAllNamesResponse', + description: 'Fetch a list of all names known to the node.', + examples: [ + 'aldenquimby.id', + 'aldeoryn.id', + 'alderete.id', + 'aldert.id', + 'aldi.id', + 'aldighieri.id', + ], + }), + '4xx': Type.Object({ error: Type.String() }, { title: 'BnsError', description: 'Error' }), + }, + }, + }, + async (req, reply) => { const page = parsePagingQueryInput(req.query.page ?? 0); - const includeUnanchored = isUnanchoredRequest(req, res, next); - const { results } = await db.getNamesList({ page, includeUnanchored }); + const includeUnanchored = req.query.unanchored; + const { results } = await fastify.db.getNamesList({ page, includeUnanchored }); if (results.length === 0 && req.query.page) { - res.status(400).json(BnsErrors.InvalidPageNumber); + await reply.status(400).send(BnsErrors.InvalidPageNumber); } else { - setETagCacheHeaders(res); - res.json(results); + await reply.send(results); } - }) + } ); - router.get( + fastify.get( '/:name', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_name_info', + summary: 'Get Name Details', + description: `Retrieves details of a given name including the \`address\`, \`status\` and last transaction id - \`last_txid\`.`, + tags: ['Names'], + params: Type.Object({ + name: Type.String({ description: 'fully-qualified name', examples: ['muneeb.id'] }), + }), + querystring: Type.Object({ + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Object( + { + address: Type.String(), + blockchain: Type.String({ examples: ['stacks'] }), + expire_block: Type.Optional(Type.Integer({ minimum: 0 })), + grace_period: Type.Optional(Type.Integer({ minimum: 0 })), + last_txid: Type.String(), + resolver: Type.Optional(Type.String()), + status: Type.String(), + zonefile: Type.String(), + zonefile_hash: Type.String(), + }, + { + title: 'BnsGetNameInfoResponse', + description: 'Get name details', + examples: [ + { + address: '1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs', + blockchain: 'stacks', + expire_block: 599266, + grace_period: false, + last_txid: '1edfa419f7b83f33e00830bc9409210da6c6d1db60f99eda10c835aa339cad6b', + renewal_deadline: 604266, + resolver: null, + status: 'registered', + zonefile: + '$ORIGIN muneeb.id\n$TTL 3600\n_http._tcp IN URI 10 1 "https://gaia.blockstack.org/hub/1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs/0/profile.json"\n', + zonefile_hash: '37aecf837c6ae9bdc9dbd98a268f263dacd00361', + }, + ], + } + ), + }, + }, + }, + async (req, reply) => { const { name } = req.params; - const includeUnanchored = isUnanchoredRequest(req, res, next); + const includeUnanchored = req.query.unanchored; - await db + await fastify.db .sqlTransaction(async sql => { let nameInfoResponse: BnsGetNameInfoResponse; // Subdomain case if (name.split('.').length == 3) { - const subdomainQuery = await db.getSubdomain({ + const subdomainQuery = await fastify.db.getSubdomain({ subdomain: name, includeUnanchored, - chainId, + chainId: fastify.chainId, }); if (!subdomainQuery.found) { const namePart = name.split('.').slice(1).join('.'); - const resolverResult = await db.getSubdomainResolver({ name: namePart }); + const resolverResult = await fastify.db.getSubdomainResolver({ name: namePart }); if (resolverResult.found) { if (resolverResult.result === '') { throw { error: `missing resolver from a malformed zonefile` }; @@ -128,7 +309,7 @@ export function createBnsNamesRouter(db: PgStore, chainId: ChainID): express.Rou zonefile_hash: result.zonefile_hash, }; } else { - const nameQuery = await db.getName({ + const nameQuery = await fastify.db.getName({ name, includeUnanchored: includeUnanchored, }); @@ -149,24 +330,20 @@ export function createBnsNamesRouter(db: PgStore, chainId: ChainID): express.Rou }; } - const response = Object.fromEntries( - Object.entries(nameInfoResponse).filter(([_, v]) => v != null) - ); - return response; + return nameInfoResponse; }) - .then(response => { - setETagCacheHeaders(res); - res.json(response); + .then(async response => { + await reply.send(response); }) - .catch(error => { + .catch(async error => { if (error instanceof NameRedirectError) { - res.redirect(error.message); + await reply.redirect(error.message); } else { - res.status(404).json(error); + await reply.status(404).send(error); } }); - }) + } ); - return router; -} + await Promise.resolve(); +}; From d6dfbe45e7cc3c466aa72042f1bc55b0c0907de0 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 5 Aug 2024 11:23:00 +0200 Subject: [PATCH 23/56] feat: refactor `/v1/namespaces/*` endpoints to fastify --- src/api/init.ts | 4 +- src/api/routes/bns/namespaces.ts | 122 ++++++++++++++++++++++--------- 2 files changed, 88 insertions(+), 38 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index de240ec28..cbdaffb07 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -22,7 +22,7 @@ import { createRosettaConstructionRouter } from './routes/rosetta/construction'; import { ChainID, apiDocumentationUrl, getChainIDNetwork } from '../helpers'; import { InvalidRequestError } from '../errors'; import { BurnchainRoutes } from './routes/burnchain'; -import { createBnsNamespacesRouter } from './routes/bns/namespaces'; +import { BnsNamespaceRoutes } from './routes/bns/namespaces'; import { createBnsPriceRouter } from './routes/bns/pricing'; import { BnsNameRoutes } from './routes/bns/names'; import { createBnsAddressesRouter } from './routes/bns/addresses'; @@ -227,7 +227,6 @@ export async function startApiServer(opts: { (() => { const router = express.Router(); router.use(cors()); - router.use('/namespaces', createBnsNamespacesRouter(datastore)); router.use('/addresses', createBnsAddressesRouter(datastore, chainId)); return router; })() @@ -365,6 +364,7 @@ export async function startApiServer(opts: { await fastify.register( async fastify => { await fastify.register(BnsNameRoutes, '/names'); + await fastify.register(BnsNamespaceRoutes, '/namespaces'); }, { prefix: '/v1' } ); diff --git a/src/api/routes/bns/namespaces.ts b/src/api/routes/bns/namespaces.ts index 646986f85..83adb8b0f 100644 --- a/src/api/routes/bns/namespaces.ts +++ b/src/api/routes/bns/namespaces.ts @@ -1,48 +1,99 @@ -import * as express from 'express'; -import { asyncHandler } from '../../async-handler'; -import { PgStore } from '../../../datastore/pg-store'; import { parsePagingQueryInput } from '../../../api/pagination'; -import { isUnanchoredRequest } from '../../query-helpers'; import { BnsErrors } from '../../../event-stream/bns/bns-constants'; import { BnsGetAllNamespacesResponse } from '@stacks/stacks-blockchain-api-types'; -import { - getETagCacheHandler, - setETagCacheHeaders, -} from '../../../api/controllers/cache-controller'; +import { handleChainTipCache } from '../../../api/controllers/cache-controller'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { UnanchoredParamSchema } from '../../schemas/params'; -export function createBnsNamespacesRouter(db: PgStore): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - - router.get( +export const BnsNamespaceRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/', - cacheHandler, - asyncHandler(async (req, res, next) => { - const includeUnanchored = isUnanchoredRequest(req, res, next); - const { results } = await db.getNamespaceList({ includeUnanchored }); + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_all_namespaces', + summary: 'Get All Namespaces', + description: `Retrieves a list of all namespaces known to the node.`, + tags: ['Names'], + querystring: Type.Object({ + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Object({ + namespaces: Type.Array(Type.String(), { + title: 'BnsGetAllNamespacesResponse', + description: 'Fetch a list of all namespaces known to the node.', + }), + }), + }, + }, + }, + async (req, reply) => { + const includeUnanchored = req.query.unanchored; + const { results } = await fastify.db.getNamespaceList({ includeUnanchored }); const response: BnsGetAllNamespacesResponse = { namespaces: results, }; - setETagCacheHeaders(res); - res.json(response); - return; - }) + await reply.send(response); + } ); - router.get( + fastify.get( '/:tld/names', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + schema: { + operationId: 'get_namespace_names', + summary: 'Get Namespace Names', + description: `Retrieves a list of names within a given namespace.`, + tags: ['Names'], + params: Type.Object({ + tld: Type.String({ description: 'the namespace to fetch names from.', examples: ['id'] }), + }), + querystring: Type.Object({ + page: Type.Optional( + Type.Number({ + description: + "namespace values are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter.", + examples: [22], + }) + ), + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Array(Type.String({ pattern: '^([a-z0-9-_.+]{3,37})$' }), { + title: 'BnsGetAllNamespacesNamesResponse', + description: 'Fetch a list of names from the namespace.', + examples: [ + [ + 'aldenquimby.id', + 'aldeoryn.id', + 'alderete.id', + 'aldert.id', + 'aldi.id', + 'aldighieri.id', + ], + ], + }), + }, + }, + }, + async (req, reply) => { const { tld } = req.params; const page = parsePagingQueryInput(req.query.page ?? 0); - const includeUnanchored = isUnanchoredRequest(req, res, next); - await db + const includeUnanchored = req.query.unanchored; + await fastify.db .sqlTransaction(async sql => { - const response = await db.getNamespace({ namespace: tld, includeUnanchored }); + const response = await fastify.db.getNamespace({ namespace: tld, includeUnanchored }); if (!response.found) { throw BnsErrors.NoSuchNamespace; } else { - const { results } = await db.getNamespaceNamesList({ + const { results } = await fastify.db.getNamespaceNamesList({ namespace: tld, page, includeUnanchored, @@ -54,15 +105,14 @@ export function createBnsNamespacesRouter(db: PgStore): express.Router { } } }) - .then(results => { - setETagCacheHeaders(res); - res.json(results); + .then(async results => { + await reply.send(results); }) - .catch(error => { - res.status(400).json(error); + .catch(async error => { + await reply.status(400).send(error); }); - }) + } ); - return router; -} + await Promise.resolve(); +}; From ddb09fe685ce5838929a2542b5058aa2b65440d2 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 5 Aug 2024 11:39:17 +0200 Subject: [PATCH 24/56] feat: refactor `/v1/addresses/*` endpoints to fastify --- src/api/init.ts | 26 +++------- src/api/routes/bns/addresses.ts | 87 ++++++++++++++++++++++---------- src/api/routes/bns/namespaces.ts | 1 + 3 files changed, 67 insertions(+), 47 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index cbdaffb07..7729a63ce 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -25,7 +25,7 @@ import { BurnchainRoutes } from './routes/burnchain'; import { BnsNamespaceRoutes } from './routes/bns/namespaces'; import { createBnsPriceRouter } from './routes/bns/pricing'; import { BnsNameRoutes } from './routes/bns/names'; -import { createBnsAddressesRouter } from './routes/bns/addresses'; +import { BnsAddressRoutes } from './routes/bns/addresses'; import * as pathToRegex from 'path-to-regexp'; import * as expressListEndpoints from 'express-list-endpoints'; import { createMiddleware as createPrometheusMiddleware } from '@promster/express'; @@ -221,17 +221,6 @@ export async function startApiServer(opts: { })() ); - // Setup legacy API v1 and v2 routes - app.use( - '/v1', - (() => { - const router = express.Router(); - router.use(cors()); - router.use('/addresses', createBnsAddressesRouter(datastore, chainId)); - return router; - })() - ); - //handle invalid request gracefully app.use((req, res) => { res.status(404).json({ message: `${req.method} ${req.path} not found` }); @@ -361,19 +350,16 @@ export async function startApiServer(opts: { { prefix: '/extended/v2' } ); - await fastify.register( - async fastify => { - await fastify.register(BnsNameRoutes, '/names'); - await fastify.register(BnsNamespaceRoutes, '/namespaces'); - }, - { prefix: '/v1' } - ); + // Setup legacy API v1 and v2 routes + await fastify.register(BnsNameRoutes, '/v1/names'); + await fastify.register(BnsNamespaceRoutes, '/v1/namespaces'); + await fastify.register(BnsAddressRoutes, '/v1/addresses'); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without // introducing a bunch of problamatic middleware side-effects. // Once all `/extended` routes are migrated it will be simplified to something like "only use Express for Rosetta routes". - const fastifyPaths = new RegExp(['^/$', '^/extended'].join('|'), 'i'); + const fastifyPaths = new RegExp(['^/$', '^/extended', '^/v1'].join('|'), 'i'); const server = createServer(async (req, res) => { const path = new URL(req.url as string, 'http://x').pathname; diff --git a/src/api/routes/bns/addresses.ts b/src/api/routes/bns/addresses.ts index b2b9c393f..abff07cf4 100644 --- a/src/api/routes/bns/addresses.ts +++ b/src/api/routes/bns/addresses.ts @@ -1,43 +1,76 @@ -import * as express from 'express'; -import { asyncHandler } from '../../async-handler'; -import { PgStore } from '../../../datastore/pg-store'; -import { isUnanchoredRequest } from '../../query-helpers'; -import { ChainID } from '../../../helpers'; -import { - getETagCacheHandler, - setETagCacheHeaders, -} from '../../../api/controllers/cache-controller'; +import { handleChainTipCache } from '../../../api/controllers/cache-controller'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { UnanchoredParamSchema } from '../../schemas/params'; const SUPPORTED_BLOCKCHAINS = ['stacks']; -export function createBnsAddressesRouter(db: PgStore, chainId: ChainID): express.Router { - const router = express.Router(); - const cacheHandler = getETagCacheHandler(db); - - router.get( +export const BnsAddressRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + fastify.get( '/:blockchain/:address', - cacheHandler, - asyncHandler(async (req, res, next) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_names_owned_by_address', + summary: 'Get Names Owned by Address', + description: `Retrieves a list of names owned by the address provided.`, + tags: ['Names'], + params: Type.Object({ + blockchain: Type.String({ + description: 'the layer-1 blockchain for the address', + examples: ['stacks'], + }), + address: Type.String({ + description: 'the address to lookup', + examples: ['SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7'], + }), + }), + querystring: Type.Object({ + unanchored: UnanchoredParamSchema, + }), + response: { + 200: Type.Object( + { + names: Type.Array( + Type.String({ + pattern: '^([a-z0-9-_.+]{3,37})$', + examples: ['muneeb.id'], + }) + ), + }, + { + title: 'BnsNamesOwnByAddressResponse', + description: 'Retrieves a list of names owned by the address provided.', + } + ), + 404: Type.Object({ error: Type.String() }, { title: 'BnsError', description: 'Error' }), + }, + }, + }, + async (req, reply) => { // Retrieves a list of names owned by the address provided. const { blockchain, address } = req.params; if (!SUPPORTED_BLOCKCHAINS.includes(blockchain)) { - res.status(404).json({ error: 'Unsupported blockchain' }); - return; + return await reply.status(404).send({ error: 'Unsupported blockchain' }); } - const includeUnanchored = isUnanchoredRequest(req, res, next); - const namesByAddress = await db.getNamesByAddressList({ + const includeUnanchored = req.query.unanchored; + const namesByAddress = await fastify.db.getNamesByAddressList({ address: address, includeUnanchored, - chainId, + chainId: fastify.chainId, }); - setETagCacheHeaders(res); if (namesByAddress.found) { - res.json({ names: namesByAddress.result }); + await reply.send({ names: namesByAddress.result }); } else { - res.json({ names: [] }); + await reply.send({ names: [] }); } - }) + } ); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/bns/namespaces.ts b/src/api/routes/bns/namespaces.ts index 83adb8b0f..254521b70 100644 --- a/src/api/routes/bns/namespaces.ts +++ b/src/api/routes/bns/namespaces.ts @@ -47,6 +47,7 @@ export const BnsNamespaceRoutes: FastifyPluginAsync< fastify.get( '/:tld/names', { + preHandler: handleChainTipCache, schema: { operationId: 'get_namespace_names', summary: 'Get Namespace Names', From 2cbb6588442b4d7b75fe89c48f2cfbd1f2a5f76d Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 5 Aug 2024 12:02:39 +0200 Subject: [PATCH 25/56] feat: refactor `/v2/prices/*` endpoints to fastify --- src/api/init.ts | 18 ++---- src/api/routes/bns/pricing.ts | 115 +++++++++++++++++++++++----------- 2 files changed, 81 insertions(+), 52 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index 7729a63ce..768042a68 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -23,7 +23,7 @@ import { ChainID, apiDocumentationUrl, getChainIDNetwork } from '../helpers'; import { InvalidRequestError } from '../errors'; import { BurnchainRoutes } from './routes/burnchain'; import { BnsNamespaceRoutes } from './routes/bns/namespaces'; -import { createBnsPriceRouter } from './routes/bns/pricing'; +import { BnsPriceRoutes } from './routes/bns/pricing'; import { BnsNameRoutes } from './routes/bns/names'; import { BnsAddressRoutes } from './routes/bns/addresses'; import * as pathToRegex from 'path-to-regexp'; @@ -192,18 +192,7 @@ export async function startApiServer(opts: { }); // Setup direct proxy to core-node RPC endpoints (/v2) - // pricing endpoint - app.use( - '/v2', - (() => { - const router = express.Router(); - router.use(cors()); - router.use('/prices', createBnsPriceRouter(datastore, chainId)); - router.use('/', createCoreNodeRpcProxyRouter(datastore)); - - return router; - })() - ); + app.use('/v2', createCoreNodeRpcProxyRouter(datastore)); // Rosetta API -- https://www.rosetta-api.org if (parseBoolean(process.env['STACKS_API_ENABLE_ROSETTA'] ?? '1')) @@ -354,12 +343,13 @@ export async function startApiServer(opts: { await fastify.register(BnsNameRoutes, '/v1/names'); await fastify.register(BnsNamespaceRoutes, '/v1/namespaces'); await fastify.register(BnsAddressRoutes, '/v1/addresses'); + await fastify.register(BnsPriceRoutes, '/v2/prices'); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without // introducing a bunch of problamatic middleware side-effects. // Once all `/extended` routes are migrated it will be simplified to something like "only use Express for Rosetta routes". - const fastifyPaths = new RegExp(['^/$', '^/extended', '^/v1'].join('|'), 'i'); + const fastifyPaths = new RegExp(['^/$', '^/extended', '^/v1', '^/v2'].join('|'), 'i'); const server = createServer(async (req, res) => { const path = new URL(req.url as string, 'http://x').pathname; diff --git a/src/api/routes/bns/pricing.ts b/src/api/routes/bns/pricing.ts index f1c05b6f9..1b377f635 100644 --- a/src/api/routes/bns/pricing.ts +++ b/src/api/routes/bns/pricing.ts @@ -1,5 +1,3 @@ -import * as express from 'express'; -import { asyncHandler } from '../../async-handler'; import { makeRandomPrivKey, getAddressFromPrivateKey, @@ -9,39 +7,59 @@ import { callReadOnlyFunction, ClarityType, } from '@stacks/transactions'; -import { - BnsGetNamePriceResponse, - BnsGetNamespacePriceResponse, -} from '@stacks/stacks-blockchain-api-types'; -import { ChainID, getChainIDNetwork, isValidPrincipal } from './../../../helpers'; -import { PgStore } from '../../../datastore/pg-store'; +import { getChainIDNetwork, isValidPrincipal } from './../../../helpers'; import { getBnsContractID, GetStacksNetwork } from '../../../event-stream/bns/bns-helpers'; import { logger } from '../../../logger'; +import { FastifyPluginAsync } from 'fastify'; +import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server } from 'node:http'; +import { handleChainTipCache } from '../../controllers/cache-controller'; -export function createBnsPriceRouter(db: PgStore, chainId: ChainID): express.Router { - const router = express.Router(); - const stacksNetwork = GetStacksNetwork(chainId); +export const BnsPriceRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + const stacksNetwork = GetStacksNetwork(fastify.chainId); - router.get( - '/namespaces/:namespace', - asyncHandler(async (req, res) => { - const { namespace } = req.params; + fastify.get( + '/namespaces/:tld', + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_namespace_price', + summary: 'Get Namespace Price', + description: `Retrieves the price of a namespace. The \`amount\` given will be in the smallest possible units of the currency.`, + tags: ['Names'], + params: Type.Object({ + tld: Type.String({ description: 'the namespace to fetch price for', examples: ['id'] }), + }), + response: { + 200: Type.Object( + { units: Type.String(), amount: Type.String({ pattern: '^[0-9]+$' }) }, + { title: 'BnsGetNamespacePriceResponse', description: 'Fetch price for namespace.' } + ), + 400: Type.Object({ error: Type.String() }, { title: 'BnsError', description: 'Error' }), + }, + }, + }, + async (req, reply) => { + const namespace = req.params.tld; if (namespace.length > 20) { - res.status(400).json({ error: 'Invalid namespace' }); + await reply.status(400).send({ error: 'Invalid namespace' }); return; } const randomPrivKey = makeRandomPrivKey(); const address = getAddressFromPrivateKey( randomPrivKey.data, - getChainIDNetwork(chainId) === 'mainnet' + getChainIDNetwork(fastify.chainId) === 'mainnet' ? TransactionVersion.Mainnet : TransactionVersion.Testnet ); - const bnsContractIdentifier = getBnsContractID(chainId); + const bnsContractIdentifier = getBnsContractID(fastify.chainId); if (!bnsContractIdentifier || !isValidPrincipal(bnsContractIdentifier)) { logger.error('BNS contract ID not properly configured'); - res.status(500).json({ error: 'BNS contract ID not properly configured' }); - return; + throw new Error('BNS contract ID not properly configured'); } const [bnsContractAddress, bnsContractName] = bnsContractIdentifier.split('.'); @@ -59,28 +77,50 @@ export function createBnsPriceRouter(db: PgStore, chainId: ChainID): express.Rou contractCallTx.type == ClarityType.ResponseOk && contractCallTx.value.type == ClarityType.UInt ) { - const response: BnsGetNamespacePriceResponse = { + const response = { units: 'STX', amount: contractCallTx.value.value.toString(10), }; - res.json(response); + await reply.send(response); } else { - res.status(400).json({ error: 'Invalid namespace' }); + await reply.status(400).send({ error: 'Invalid namespace' }); } - }) + } ); - router.get( + fastify.get( '/names/:name', - asyncHandler(async (req, res) => { + { + preHandler: handleChainTipCache, + schema: { + operationId: 'get_name_price', + summary: 'Get Name Price', + description: `Retrieves the price of a name. The \`amount\` given will be in the smallest possible units of the currency.`, + tags: ['Names'], + params: Type.Object({ + name: Type.String({ + description: 'the name to query price information for', + examples: ['muneeb.id'], + }), + }), + response: { + 200: Type.Object( + { units: Type.String(), amount: Type.String({ pattern: '^[0-9]+$' }) }, + { title: 'BnsGetNamePriceResponse', description: 'Fetch price for name.' } + ), + 400: Type.Object({ error: Type.String() }, { title: 'BnsError', description: 'Error' }), + }, + }, + }, + async (req, reply) => { const input = req.params.name; if (!input.includes('.')) { - res.status(400).json({ error: 'Invalid name' }); + await reply.status(400).send({ error: 'Invalid name' }); return; } const split = input.split('.'); if (split.length != 2) { - res.status(400).json({ error: 'Invalid name' }); + await reply.status(400).send({ error: 'Invalid name' }); return; } const name = split[0]; @@ -88,16 +128,15 @@ export function createBnsPriceRouter(db: PgStore, chainId: ChainID): express.Rou const randomPrivKey = makeRandomPrivKey(); const address = getAddressFromPrivateKey( randomPrivKey.data, - getChainIDNetwork(chainId) === 'mainnet' + getChainIDNetwork(fastify.chainId) === 'mainnet' ? TransactionVersion.Mainnet : TransactionVersion.Testnet ); - const bnsContractIdentifier = getBnsContractID(chainId); + const bnsContractIdentifier = getBnsContractID(fastify.chainId); if (!bnsContractIdentifier || !isValidPrincipal(bnsContractIdentifier)) { logger.error('BNS contract ID not properly configured'); - res.status(500).json({ error: 'BNS contract ID not properly configured' }); - return; + throw new Error('BNS contract ID not properly configured'); } const [bnsContractAddress, bnsContractName] = bnsContractIdentifier.split('.'); @@ -115,16 +154,16 @@ export function createBnsPriceRouter(db: PgStore, chainId: ChainID): express.Rou contractCall.type == ClarityType.ResponseOk && contractCall.value.type == ClarityType.UInt ) { - const response: BnsGetNamePriceResponse = { + const response = { units: 'STX', amount: contractCall.value.value.toString(10), }; - res.json(response); + await reply.send(response); } else { - res.status(400).json({ error: 'Invalid name' }); + await reply.status(400).send({ error: 'Invalid name' }); } - }) + } ); - return router; -} + await Promise.resolve(); +}; From 9c446fcc3629d3fb32ac2deb194c26f28b47780d Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 5 Aug 2024 16:48:04 +0200 Subject: [PATCH 26/56] feat: refactor core-node RPC proxy (/v2/*) to fastify --- package-lock.json | 47 ++++++- package.json | 1 + src/api/init.ts | 24 ++-- src/api/routes/core-node-rpc-proxy.ts | 179 ++++++++------------------ src/api/routes/debug.ts | 10 +- src/tests/v2-proxy-tests.ts | 5 +- 6 files changed, 125 insertions(+), 141 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6427a8947..ffef42247 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@apidevtools/json-schema-ref-parser": "9.0.9", "@fastify/cors": "9.0.1", "@fastify/formbody": "7.4.0", + "@fastify/http-proxy": "9.5.0", "@fastify/multipart": "8.3.0", "@fastify/swagger": "8.15.0", "@fastify/type-provider-typebox": "4.0.0", @@ -1832,6 +1833,37 @@ "fastify-plugin": "^4.0.0" } }, + "node_modules/@fastify/http-proxy": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@fastify/http-proxy/-/http-proxy-9.5.0.tgz", + "integrity": "sha512-1iqIdV10d5k9YtfHq9ylX5zt1NiM50fG+rIX40qt00R694sqWso3ukyTFZVk33SDoSiBW8roB7n11RUVUoN+Ag==", + "dependencies": { + "@fastify/reply-from": "^9.0.0", + "fast-querystring": "^1.1.2", + "fastify-plugin": "^4.5.0", + "ws": "^8.4.2" + } + }, + "node_modules/@fastify/http-proxy/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@fastify/multipart": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-8.3.0.tgz", @@ -1845,6 +1877,20 @@ "stream-wormhole": "^1.1.0" } }, + "node_modules/@fastify/reply-from": { + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/@fastify/reply-from/-/reply-from-9.8.0.tgz", + "integrity": "sha512-bPNVaFhEeNI0Lyl6404YZaPFokudCplidE3QoOcr78yOy6H9sYw97p5KPYvY/NJNUHfFtvxOaSAHnK+YSiv/Mg==", + "dependencies": { + "@fastify/error": "^3.0.0", + "end-of-stream": "^1.4.4", + "fast-content-type-parse": "^1.1.0", + "fast-querystring": "^1.0.0", + "fastify-plugin": "^4.0.0", + "toad-cache": "^3.7.0", + "undici": "^5.19.1" + } + }, "node_modules/@fastify/swagger": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.15.0.tgz", @@ -13551,7 +13597,6 @@ "version": "5.28.4", "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", - "dev": true, "dependencies": { "@fastify/busboy": "^2.0.0" }, diff --git a/package.json b/package.json index a654c63ce..a7d2d2990 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,7 @@ "@apidevtools/json-schema-ref-parser": "9.0.9", "@fastify/cors": "9.0.1", "@fastify/formbody": "7.4.0", + "@fastify/http-proxy": "9.5.0", "@fastify/multipart": "8.3.0", "@fastify/swagger": "8.15.0", "@fastify/type-provider-typebox": "4.0.0", diff --git a/src/api/init.ts b/src/api/init.ts index 768042a68..dccdc217f 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -8,7 +8,7 @@ import { TxRoutes } from './routes/tx'; import { DebugRoutes } from './routes/debug'; import { InfoRoutes } from './routes/info'; import { ContractRoutes } from './routes/contract'; -import { createCoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; +import { CoreNodeRpcProxyRouter } from './routes/core-node-rpc-proxy'; import { BlockRoutes } from './routes/block'; import { FaucetRoutes } from './routes/faucets'; import { AddressRoutes } from './routes/address'; @@ -191,9 +191,6 @@ export async function startApiServer(opts: { res.send(errObj).status(404); }); - // Setup direct proxy to core-node RPC endpoints (/v2) - app.use('/v2', createCoreNodeRpcProxyRouter(datastore)); - // Rosetta API -- https://www.rosetta-api.org if (parseBoolean(process.env['STACKS_API_ENABLE_ROSETTA'] ?? '1')) app.use( @@ -340,10 +337,16 @@ export async function startApiServer(opts: { ); // Setup legacy API v1 and v2 routes - await fastify.register(BnsNameRoutes, '/v1/names'); - await fastify.register(BnsNamespaceRoutes, '/v1/namespaces'); - await fastify.register(BnsAddressRoutes, '/v1/addresses'); - await fastify.register(BnsPriceRoutes, '/v2/prices'); + await fastify.register(BnsNameRoutes, { prefix: '/v1/names' }); + await fastify.register(BnsNamespaceRoutes, { prefix: '/v1/namespaces' }); + await fastify.register(BnsAddressRoutes, { prefix: '/v1/addresses' }); + await fastify.register(BnsPriceRoutes, { prefix: '/v2/prices' }); + + // Setup direct proxy to core-node RPC endpoints (/v2) + await fastify.register(CoreNodeRpcProxyRouter, { prefix: '/v2' }); + + // Wait for all routes and middleware to be ready before starting the server + await fastify.ready(); // This will be a messy list as routes are migrated to Fastify, // However, it's the most straightforward way to split between Fastify and Express without @@ -351,11 +354,10 @@ export async function startApiServer(opts: { // Once all `/extended` routes are migrated it will be simplified to something like "only use Express for Rosetta routes". const fastifyPaths = new RegExp(['^/$', '^/extended', '^/v1', '^/v2'].join('|'), 'i'); - const server = createServer(async (req, res) => { - const path = new URL(req.url as string, 'http://x').pathname; + const server = createServer((req, res) => { + const path = new URL(req.url as string, `http://${req.headers.host}`).pathname; if (fastifyPaths.test(path)) { // handle with fastify - await fastify.ready(); fastify.server.emit('request', req, res); } else { // handle with express diff --git a/src/api/routes/core-node-rpc-proxy.ts b/src/api/routes/core-node-rpc-proxy.ts index 2f04fabc7..66b561be0 100644 --- a/src/api/routes/core-node-rpc-proxy.ts +++ b/src/api/routes/core-node-rpc-proxy.ts @@ -1,16 +1,12 @@ -import * as express from 'express'; -import * as cors from 'cors'; -import { createProxyMiddleware, Options, responseInterceptor } from 'http-proxy-middleware'; -import { parsePort, pipelineAsync, REPO_DIR } from '../../helpers'; -import { Agent } from 'http'; +import { parsePort, REPO_DIR } from '../../helpers'; import * as fs from 'fs'; import * as path from 'path'; -import { asyncHandler } from '../async-handler'; -import * as chokidar from 'chokidar'; -import * as jsoncParser from 'jsonc-parser'; import fetch, { RequestInit } from 'node-fetch'; -import { PgStore } from '../../datastore/pg-store'; import { logger } from '../../logger'; +import { FastifyPluginAsync } from 'fastify'; +import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import { Server, ServerResponse } from 'node:http'; +import { fastifyHttpProxy } from '@fastify/http-proxy'; function GetStacksNodeProxyEndpoint() { // Use STACKS_CORE_PROXY env vars if available, otherwise fallback to `STACKS_CORE_RPC @@ -21,68 +17,19 @@ function GetStacksNodeProxyEndpoint() { return `${proxyHost}:${proxyPort}`; } -export function createCoreNodeRpcProxyRouter(db: PgStore): express.Router { - const router = express.Router(); - router.use(cors()); +function getReqUrl(req: { url: string; hostname: string }): URL { + return new URL(req.url, `http://${req.hostname}`); +} +export const CoreNodeRpcProxyRouter: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { const stacksNodeRpcEndpoint = GetStacksNodeProxyEndpoint(); logger.info(`/v2/* proxying to: ${stacksNodeRpcEndpoint}`); - // Note: while keep-alive may result in some performance improvements with the stacks-node http server, - // it can also cause request distribution issues when proxying to a pool of stacks-nodes. See: - // https://github.com/hirosystems/stacks-blockchain-api/issues/756 - const httpAgent = new Agent({ - // keepAlive: true, - keepAlive: false, // `false` is the default -- set it explicitly for readability anyway. - // keepAliveMsecs: 60000, - maxSockets: 200, - maxTotalSockets: 400, - }); - - const PROXY_CACHE_CONTROL_FILE_ENV_VAR = 'STACKS_API_PROXY_CACHE_CONTROL_FILE'; - let proxyCacheControlFile = '.proxy-cache-control.json'; - if (process.env[PROXY_CACHE_CONTROL_FILE_ENV_VAR]) { - proxyCacheControlFile = process.env[PROXY_CACHE_CONTROL_FILE_ENV_VAR]; - logger.info(`Using ${proxyCacheControlFile}`); - } - const cacheControlFileWatcher = chokidar.watch(proxyCacheControlFile, { - persistent: false, - useFsEvents: false, - ignoreInitial: true, - }); - let pathCacheOptions = new Map(); - - const updatePathCacheOptions = () => { - try { - const configContent: { paths: Record } = jsoncParser.parse( - fs.readFileSync(proxyCacheControlFile, 'utf8') - ); - pathCacheOptions = new Map( - Object.entries(configContent.paths).map(([k, v]) => [RegExp(k), v]) - ); - } catch (error) { - pathCacheOptions.clear(); - logger.error(error, `Error reading changes from ${proxyCacheControlFile}`); - } - }; - updatePathCacheOptions(); - cacheControlFileWatcher.on('all', (eventName, path, stats) => { - updatePathCacheOptions(); - }); - - const getCacheControlHeader = (statusCode: number, url: string): string | null => { - if (statusCode < 200 || statusCode > 299) { - return null; - } - for (const [regexp, cacheControl] of pathCacheOptions.entries()) { - if (cacheControl && regexp.test(url)) { - return cacheControl; - } - } - return null; - }; - /** * Check for any extra endpoints that have been configured for performing a "multicast" for a tx submission. */ @@ -113,7 +60,7 @@ export function createCoreNodeRpcProxyRouter(db: PgStore): express.Router { /** * Reads an http request stream into a Buffer. */ - async function readRequestBody(req: express.Request, maxSizeBytes = Infinity): Promise { + async function readRequestBody(req: ServerResponse, maxSizeBytes = Infinity): Promise { return new Promise((resolve, reject) => { let resultBuffer: Buffer = Buffer.alloc(0); req.on('data', chunk => { @@ -134,11 +81,6 @@ export function createCoreNodeRpcProxyRouter(db: PgStore): express.Router { } }); req.on('end', () => { - if (!req.complete) { - return reject( - new Error('The connection was terminated while the message was still being sent') - ); - } resolve(resultBuffer); }); req.on('error', error => reject(error)); @@ -150,7 +92,7 @@ export function createCoreNodeRpcProxyRouter(db: PgStore): express.Router { */ async function logTxBroadcast(response: string): Promise { try { - const blockHeightQuery = await db.getCurrentBlockHeight(); + const blockHeightQuery = await fastify.db.getCurrentBlockHeight(); if (!blockHeightQuery.found) { return; } @@ -166,12 +108,25 @@ export function createCoreNodeRpcProxyRouter(db: PgStore): express.Router { } } - router.post( - '/transactions', - asyncHandler(async (req, res, next) => { + const maxBodySize = 10_000_000; // 10 MB max POST body size + fastify.addContentTypeParser( + 'application/octet-stream', + { parseAs: 'buffer', bodyLimit: maxBodySize }, + (_req, body, done) => { + done(null, body); + } + ); + + await fastify.register(fastifyHttpProxy, { + upstream: `http://${stacksNodeRpcEndpoint}`, + rewritePrefix: '/v2', + http2: false, + preValidation: async (req, reply) => { + if (getReqUrl(req).pathname !== '/v2/transactions') { + return; + } const extraEndpoints = await getExtraTxPostEndpoints(); if (!extraEndpoints) { - next(); return; } const endpoints = [ @@ -180,16 +135,14 @@ export function createCoreNodeRpcProxyRouter(db: PgStore): express.Router { ]; endpoints.push(...extraEndpoints); logger.info(`Overriding POST /v2/transactions to multicast to ${endpoints.join(',')}}`); - const maxBodySize = 10_000_000; // 10 MB max POST body size - const reqBody = await readRequestBody(req, maxBodySize); + const reqBody = req.body as Buffer; const reqHeaders: string[][] = []; - for (let i = 0; i < req.rawHeaders.length; i += 2) { - reqHeaders.push([req.rawHeaders[i], req.rawHeaders[i + 1]]); + for (let i = 0; i < req.raw.rawHeaders.length; i += 2) { + reqHeaders.push([req.raw.rawHeaders[i], req.raw.rawHeaders[i + 1]]); } const postFn = async (endpoint: string) => { const reqOpts: RequestInit = { method: 'POST', - agent: httpAgent, body: reqBody, headers: reqHeaders, }; @@ -224,56 +177,36 @@ export function createCoreNodeRpcProxyRouter(db: PgStore): express.Router { mainResult.reason, `Error in primary POST /v2/transaction proxy: ${mainResult.reason}` ); - res.status(500).json({ error: mainResult.reason }); + await reply.status(500).send({ error: mainResult.reason }); } else { const proxyResp = mainResult.value; - res.status(proxyResp.status); - proxyResp.headers.forEach((value, name) => { - res.setHeader(name, value); - }); if (proxyResp.status === 200) { // Log the transaction id broadcast, but clone the `Response` first before parsing its body // so we don't mess up the original response's `ReadableStream` pointers. const parsedTxId: string = await proxyResp.clone().text(); await logTxBroadcast(parsedTxId); } - await pipelineAsync(proxyResp.body, res); + await reply + .status(proxyResp.status) + .headers(Object.fromEntries(proxyResp.headers.entries())) + .send(proxyResp.body); + console.log('sent'); } - }) - ); - - const proxyOptions: Options = { - agent: httpAgent, - target: `http://${stacksNodeRpcEndpoint}`, - changeOrigin: true, - selfHandleResponse: true, - onProxyRes: responseInterceptor(async (responseBuffer, proxyRes, req, res) => { - if (req.url !== undefined) { - const header = getCacheControlHeader(res.statusCode, req.url); - if (header) { - res.setHeader('Cache-Control', header); - } - const url = new URL(req.url, `http://${req.headers.host}`); - if (url.pathname === '/v2/transactions' && res.statusCode === 200) { - await logTxBroadcast(responseBuffer.toString()); + }, + replyOptions: { + onResponse: async (req, reply, response) => { + // Log the transaction id broadcast + if (getReqUrl(req).pathname === '/v2/transactions' && reply.statusCode === 200) { + const responseBuffer = await readRequestBody(response as ServerResponse); + const txId = responseBuffer.toString(); + await logTxBroadcast(txId); + await reply.send(responseBuffer); + } else { + await reply.send(response); } - } - return responseBuffer; - }), - onError: (error, req, res) => { - const msg = - (error as any).code === 'ECONNREFUSED' - ? 'core node unresponsive' - : 'cannot connect to core node'; - res - .writeHead(502, { 'Content-Type': 'application/json' }) - .end(JSON.stringify({ message: msg, error: error })); + }, }, - }; - - const stacksNodeRpcProxy = createProxyMiddleware(proxyOptions); - - router.use(stacksNodeRpcProxy); + }); - return router; -} + await Promise.resolve(); +}; diff --git a/src/api/routes/debug.ts b/src/api/routes/debug.ts index fa8f78731..2d2c6acf5 100644 --- a/src/api/routes/debug.ts +++ b/src/api/routes/debug.ts @@ -203,7 +203,7 @@ export const DebugRoutes: FastifyPluginAsync< { schema: { body: Type.Object({ - sponsored: Type.Boolean(), + sponsored: Type.Optional(Type.Literal('sponsored')), signers: Type.Array(Type.String()), signatures_required: Type.Integer(), recipient_address: Type.String(), @@ -332,7 +332,7 @@ export const DebugRoutes: FastifyPluginAsync< signatures_required: Type.Integer(), stx_amount: Type.String(), memo: Type.String(), - sponsored: Type.Boolean(), + sponsored: Type.Optional(Type.Literal('sponsored')), }), }, }, @@ -344,7 +344,7 @@ export const DebugRoutes: FastifyPluginAsync< stx_amount, memo, } = req.body; - const sponsored = req.body.sponsored; + const sponsored = !!req.body.sponsored; const recipientAddresses = Array.isArray(recipientInput) ? recipientInput : [recipientInput]; const recipientPubKeys = recipientAddresses @@ -466,7 +466,7 @@ export const DebugRoutes: FastifyPluginAsync< memo: Type.String(), nonce: Type.String(), anchor_mode: Type.Integer(), - sponsored: Type.Boolean(), + sponsored: Type.Optional(Type.Literal('sponsored')), }), }, }, @@ -899,7 +899,7 @@ export const DebugRoutes: FastifyPluginAsync< origin_key: Type.String(), contract_name: Type.String(), source_code: Type.String(), - sponsored: Type.Boolean(), + sponsored: Type.Optional(Type.Literal('sponsored')), }), }, }, diff --git a/src/tests/v2-proxy-tests.ts b/src/tests/v2-proxy-tests.ts index 8c74e2837..1d540b266 100644 --- a/src/tests/v2-proxy-tests.ts +++ b/src/tests/v2-proxy-tests.ts @@ -105,7 +105,10 @@ describe('v2-proxy tests', () => { mockedRequestBody = body as string; cb(null, extraStubbedResponse); }); - const postTxReq = await supertest(api.server).post(`/v2/transactions`).send(testRequest); + const postTxReq = await supertest(api.server) + .post(`/v2/transactions`) + .set('Content-Type', 'application/octet-stream') + .send(testRequest); // test that main endpoint response was returned expect(postTxReq.status).toBe(200); expect(postTxReq.text).toBe(primaryStubbedResponse); From 15fb3402eecfc25a7d457e31d733e57da3b4080d Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 5 Aug 2024 17:11:22 +0200 Subject: [PATCH 27/56] chore: remove dead code --- package-lock.json | 64 +++--- package.json | 6 - src/api/controllers/cache-controller.ts | 32 --- src/api/init.ts | 120 +----------- src/api/query-helpers.ts | 250 +----------------------- src/api/routes/address.ts | 10 +- src/btc-faucet.ts | 5 +- src/datastore/pg-store.ts | 1 - src/helpers.ts | 15 ++ src/index.ts | 1 - 10 files changed, 57 insertions(+), 447 deletions(-) diff --git a/package-lock.json b/package-lock.json index ffef42247..843a8c676 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,16 +27,13 @@ "@stacks/network": "6.11.3", "@stacks/stacking": "6.13.2", "@stacks/transactions": "6.11.3", - "@types/express-list-endpoints": "4.0.1", "@types/lru-cache": "5.1.1", "@types/ws": "7.4.7", "ajv": "8.17.1", "ajv-formats": "3.0.1", "bignumber.js": "9.0.2", "bitcoinjs-lib": "6.1.0", - "bluebird": "3.7.2", "c32check": "1.1.3", - "chokidar": "3.5.3", "coinselect": "3.1.12", "cors": "2.8.5", "cross-env": "7.0.3", @@ -48,7 +45,6 @@ "escape-goat": "3.0.0", "evt": "1.10.1", "express": "4.19.2", - "express-list-endpoints": "5.0.0", "fastify": "4.28.1", "fastify-metrics": "11.0.0", "getopts": "2.3.0", @@ -60,7 +56,6 @@ "node-fetch": "2.6.7", "node-pg-migrate": "6.2.1", "p-queue": "6.6.2", - "path-to-regexp": "6.2.0", "pg": "8.7.1", "pg-copy-streams": "5.1.1", "pg-cursor": "2.7.1", @@ -89,7 +84,6 @@ "@commitlint/cli": "19.2.2", "@commitlint/config-conventional": "10.0.0", "@stacks/eslint-config": "1.2.0", - "@types/bluebird": "3.5.36", "@types/cors": "2.8.12", "@types/dotenv-flow": "3.2.0", "@types/elliptic": "6.4.14", @@ -3675,12 +3669,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, "node_modules/@types/bn.js": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.3.tgz", @@ -3693,6 +3681,7 @@ "version": "1.19.4", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz", "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==", + "dev": true, "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -3707,6 +3696,7 @@ "version": "3.4.37", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -3755,6 +3745,7 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -3762,18 +3753,11 @@ "@types/serve-static": "*" } }, - "node_modules/@types/express-list-endpoints": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/express-list-endpoints/-/express-list-endpoints-4.0.1.tgz", - "integrity": "sha512-hWeurpN0+u8JUTbLpSzQLxQbrOszRkba7LKlLPj8L8YH4DUlGgbIzzNwrc7563CV+Hr10QrpZKlQBAasK6x9KQ==", - "dependencies": { - "@types/express": "*" - } - }, "node_modules/@types/express-serve-static-core": { "version": "4.17.39", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz", "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==", + "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -3793,7 +3777,8 @@ "node_modules/@types/http-errors": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz", - "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==" + "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==", + "dev": true }, "node_modules/@types/http-proxy": { "version": "1.17.13", @@ -3864,7 +3849,8 @@ "node_modules/@types/mime": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz", - "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==" + "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==", + "dev": true }, "node_modules/@types/node": { "version": "20.11.4", @@ -3914,12 +3900,14 @@ "node_modules/@types/qs": { "version": "6.9.9", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", - "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==" + "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==", + "dev": true }, "node_modules/@types/range-parser": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz", - "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==" + "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==", + "dev": true }, "node_modules/@types/request": { "version": "2.48.11", @@ -3963,6 +3951,7 @@ "version": "0.17.3", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz", "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==", + "dev": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -3972,6 +3961,7 @@ "version": "1.15.4", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz", "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==", + "dev": true, "dependencies": { "@types/http-errors": "*", "@types/mime": "*", @@ -4702,6 +4692,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5076,6 +5067,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, "engines": { "node": ">=8" } @@ -5111,11 +5103,6 @@ "node": ">=8.0.0" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, "node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", @@ -5517,6 +5504,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "funding": [ { "type": "individual", @@ -7169,14 +7157,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express-list-endpoints": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/express-list-endpoints/-/express-list-endpoints-5.0.0.tgz", - "integrity": "sha512-bjypzWA7AQ64VNLbQ3GqwDzLxqK1NIHFRJvFDb7wg0S7YwquI8l8XZsmF0yiEA22gN+p+G6+1KDcXxb6Dn3OaA==", - "engines": { - "node": ">=10" - } - }, "node_modules/express/node_modules/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", @@ -7769,6 +7749,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -7968,6 +7949,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -8605,6 +8587,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -10698,6 +10681,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -11077,11 +11061,6 @@ "node": "14 || >=16.14" } }, - "node_modules/path-to-regexp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", - "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==" - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -11800,6 +11779,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { "picomatch": "^2.2.1" }, diff --git a/package.json b/package.json index a7d2d2990..5a4e93862 100644 --- a/package.json +++ b/package.json @@ -102,16 +102,13 @@ "@stacks/network": "6.11.3", "@stacks/stacking": "6.13.2", "@stacks/transactions": "6.11.3", - "@types/express-list-endpoints": "4.0.1", "@types/lru-cache": "5.1.1", "@types/ws": "7.4.7", "ajv": "8.17.1", "ajv-formats": "3.0.1", "bignumber.js": "9.0.2", "bitcoinjs-lib": "6.1.0", - "bluebird": "3.7.2", "c32check": "1.1.3", - "chokidar": "3.5.3", "coinselect": "3.1.12", "cors": "2.8.5", "cross-env": "7.0.3", @@ -123,7 +120,6 @@ "escape-goat": "3.0.0", "evt": "1.10.1", "express": "4.19.2", - "express-list-endpoints": "5.0.0", "fastify": "4.28.1", "fastify-metrics": "11.0.0", "getopts": "2.3.0", @@ -135,7 +131,6 @@ "node-fetch": "2.6.7", "node-pg-migrate": "6.2.1", "p-queue": "6.6.2", - "path-to-regexp": "6.2.0", "pg": "8.7.1", "pg-copy-streams": "5.1.1", "pg-cursor": "2.7.1", @@ -164,7 +159,6 @@ "@commitlint/cli": "19.2.2", "@commitlint/config-conventional": "10.0.0", "@stacks/eslint-config": "1.2.0", - "@types/bluebird": "3.5.36", "@types/cors": "2.8.12", "@types/dotenv-flow": "3.2.0", "@types/elliptic": "6.4.14", diff --git a/src/api/controllers/cache-controller.ts b/src/api/controllers/cache-controller.ts index 75c9d4065..fb17ba1e3 100644 --- a/src/api/controllers/cache-controller.ts +++ b/src/api/controllers/cache-controller.ts @@ -79,38 +79,6 @@ function getETagMetrics(): ETagCacheMetrics { return _eTagMetrics; } -export function setResponseNonCacheable(res: Response) { - res.removeHeader('Cache-Control'); - res.removeHeader('ETag'); -} - -/** - * Sets the response `Cache-Control` and `ETag` headers using the etag previously added - * to the response locals. - */ -export function setETagCacheHeaders(res: Response, etagType: ETagType = ETagType.chainTip) { - const etag: ETag | undefined = res.locals[etagType]; - if (!etag) { - logger.error( - `Cannot set cache control headers, no etag was set on \`Response.locals[${etagType}]\`.` - ); - return; - } - if (etag === ETAG_EMPTY) { - return; - } - res.set({ - 'Cache-Control': CACHE_CONTROL_MUST_REVALIDATE, - // Use the current chain tip or mempool state as the etag so that cache is invalidated on new blocks or - // new mempool events. - // This value will be provided in the `If-None-Match` request header in subsequent requests. - // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag - // > Entity tag that uniquely represents the requested resource. - // > It is a string of ASCII characters placed between double quotes.. - ETag: `"${etag}"`, - }); -} - /** * Parses the etag values from a raw `If-None-Match` request header value. * The wrapping double quotes (if any) and validation prefix (if any) are stripped. diff --git a/src/api/init.ts b/src/api/init.ts index dccdc217f..0b1a9d639 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -19,21 +19,17 @@ import { createRosettaMempoolRouter } from './routes/rosetta/mempool'; import { createRosettaBlockRouter } from './routes/rosetta/block'; import { createRosettaAccountRouter } from './routes/rosetta/account'; import { createRosettaConstructionRouter } from './routes/rosetta/construction'; -import { ChainID, apiDocumentationUrl, getChainIDNetwork } from '../helpers'; +import { ChainID, apiDocumentationUrl } from '../helpers'; import { InvalidRequestError } from '../errors'; import { BurnchainRoutes } from './routes/burnchain'; import { BnsNamespaceRoutes } from './routes/bns/namespaces'; import { BnsPriceRoutes } from './routes/bns/pricing'; import { BnsNameRoutes } from './routes/bns/names'; import { BnsAddressRoutes } from './routes/bns/addresses'; -import * as pathToRegex from 'path-to-regexp'; -import * as expressListEndpoints from 'express-list-endpoints'; -import { createMiddleware as createPrometheusMiddleware } from '@promster/express'; import { MicroblockRoutes } from './routes/microblock'; import { StatusRoutes } from './routes/status'; import { TokenRoutes } from './routes/tokens'; import { FeeRateRoutes } from './routes/fee-rate'; -import { setResponseNonCacheable } from './controllers/cache-controller'; import * as path from 'path'; import * as fs from 'fs'; @@ -51,7 +47,6 @@ import { waiter, } from '@hirosystems/api-toolkit'; import { BlockRoutesV2 } from './routes/v2/blocks'; -import { getReqQuery } from './query-helpers'; import { BurnBlockRoutesV2 } from './routes/v2/burn-blocks'; import { MempoolRoutesV2 } from './routes/v2/mempool'; import { SmartContractRoutesV2 } from './routes/v2/smart-contracts'; @@ -107,45 +102,6 @@ export async function startApiServer(opts: { ); } - let routes: { - path: string; - regexp: RegExp; - }[] = []; - - if (isProdEnv) { - // The default from - // https://github.com/tdeekens/promster/blob/696803abf03a9a657d4af46d312fa9fb70a75320/packages/metrics/src/create-metric-types/create-metric-types.ts#L16 - const defaultPromHttpRequestDurationInSeconds = [0.05, 0.1, 0.3, 0.5, 0.8, 1, 1.5, 2, 3, 10]; - - // Add a few more buckets to account for requests that take longer than 10 seconds - defaultPromHttpRequestDurationInSeconds.push(25, 50, 100, 250, 500); - - const promMiddleware = createPrometheusMiddleware({ - options: { - buckets: defaultPromHttpRequestDurationInSeconds as [number], - normalizePath: path => { - // Get the url pathname without a query string or fragment - // (note base url doesn't matter, but required by URL constructor) - try { - const pathTemplate = new URL(path, 'http://x').pathname; - // Match request url to the Express route, e.g.: - // `/extended/v1/address/ST26DR4VGV507V1RZ1JNM7NN4K3DTGX810S62SBBR/stx` to - // `/extended/v1/address/:stx_address/stx` - for (const pathRegex of routes) { - if (pathRegex.regexp.test(pathTemplate)) { - return pathRegex.path; - } - } - return ''; - } catch (error) { - logger.warn(`Warning: ${error}`); - return path; - } - }, - }, - }); - app.use(promMiddleware); - } // Add API version to header app.use((_, res, next) => { res.setHeader( @@ -161,11 +117,6 @@ export async function startApiServer(opts: { app.set('json spaces', 2); - // Turn off Express's etag handling. By default CRC32 hashes are generated over response payloads - // which are useless for our use case and wastes CPU. - // See https://expressjs.com/en/api.html#etag.options.table - app.set('etag', false); - app.use('/doc', (req, res) => { // if env variable for API_DOCS_URL is given if (apiDocumentationUrl) { @@ -214,25 +165,6 @@ export async function startApiServer(opts: { // Setup error handler (must be added at the end of the middleware stack) app.use(((error, req, res, next) => { - if (req.method === 'GET' && res.statusCode !== 200 && res.hasHeader('ETag')) { - logger.error( - error, - `Non-200 request has ETag: ${res.header('ETag')}, Cache-Control: ${res.header( - 'Cache-Control' - )}` - ); - } - if (error && res.headersSent && res.statusCode !== 200 && res.hasHeader('ETag')) { - logger.error( - error, - `A non-200 response with an error in request processing has ETag: ${res.header( - 'ETag' - )}, Cache-Control: ${res.header('Cache-Control')}` - ); - } - if (!res.headersSent && (error || res.statusCode !== 200)) { - setResponseNonCacheable(res); - } if (error && !res.headersSent) { if (error instanceof InvalidRequestError) { logger.warn(error, error.message); @@ -251,47 +183,18 @@ export async function startApiServer(opts: { next(error); }) as express.ErrorRequestHandler); - // Store all the registered express routes for usage with metrics reporting - routes = expressListEndpoints(app).map(endpoint => ({ - path: endpoint.path, - regexp: pathToRegex.pathToRegexp(endpoint.path), - })); - - // Manual route definitions for the /v2/ proxied endpoints - routes.push({ - path: '/v2/pox', - regexp: /^\/v2\/pox(.*)/, - }); - routes.push({ - path: '/v2/info', - regexp: /^\/v2\/info(.*)/, - }); - routes.push({ - path: '/v2/accounts/*', - regexp: /^\/v2\/accounts(.*)/, - }); - routes.push({ - path: '/v2/contracts/call-read/*', - regexp: /^\/v2\/contracts\/call-read(.*)/, - }); - routes.push({ - path: '/v2/map_entry/*', - regexp: /^\/v2\/map_entry(.*)/, - }); - routes.push({ - path: '/v2/*', - regexp: /^\/v2(.*)/, - }); - const fastify = Fastify({ trustProxy: true, logger: PINO_LOGGER_CONFIG, }).withTypeProvider(); + fastify.decorate('db', opts.datastore); fastify.decorate('writeDb', opts.writeDatastore); fastify.decorate('chainId', opts.chainId); + await fastify.register(FastifyMetrics, { endpoint: null }); await fastify.register(FastifyCors, { exposedHeaders: ['X-API-Version'] }); + fastify.addHook('preHandler', async (_, reply) => { // Set API version in all responses. void reply.header( @@ -348,20 +251,17 @@ export async function startApiServer(opts: { // Wait for all routes and middleware to be ready before starting the server await fastify.ready(); - // This will be a messy list as routes are migrated to Fastify, - // However, it's the most straightforward way to split between Fastify and Express without + // The most straightforward way to split between Fastify and Express without // introducing a bunch of problamatic middleware side-effects. - // Once all `/extended` routes are migrated it will be simplified to something like "only use Express for Rosetta routes". - const fastifyPaths = new RegExp(['^/$', '^/extended', '^/v1', '^/v2'].join('|'), 'i'); + const rosettaPath = new RegExp('^/rosetta'); const server = createServer((req, res) => { - const path = new URL(req.url as string, `http://${req.headers.host}`).pathname; - if (fastifyPaths.test(path)) { - // handle with fastify - fastify.server.emit('request', req, res); - } else { + if (rosettaPath.test(req.url as string)) { // handle with express app(req, res); + } else { + // handle with fastify + fastify.server.emit('request', req, res); } }); diff --git a/src/api/query-helpers.ts b/src/api/query-helpers.ts index 95ef621a7..b36ab0814 100644 --- a/src/api/query-helpers.ts +++ b/src/api/query-helpers.ts @@ -1,76 +1,7 @@ -import { ClarityAbi } from '@stacks/transactions'; -import { NextFunction, Request, Response } from 'express'; -import { parseEventTypeStrings, isValidPrincipal } from './../helpers'; +import { isValidPrincipal } from './../helpers'; import { InvalidRequestError, InvalidRequestErrorType } from '../errors'; -import { DbEventTypeId } from './../datastore/common'; import { has0xPrefix, hexToBuffer } from '@hirosystems/api-toolkit'; -export enum MempoolOrderByParam { - fee = 'fee', - size = 'size', - age = 'age', -} - -export enum OrderParam { - asc = 'asc', - desc = 'desc', -} - -function handleBadRequest(res: Response, next: NextFunction, errorMessage: string): never { - const error = new InvalidRequestError(errorMessage, InvalidRequestErrorType.bad_request); - res.status(400).json({ error: errorMessage }); - next(error); - throw error; -} - -export function booleanValueForParam( - req: Request, - res: Response, - next: NextFunction, - paramName: string -): boolean | never { - if (!(paramName in req.query)) { - return false; - } - const paramVal = req.query[paramName]; - if (typeof paramVal === 'string') { - const normalizedParam = paramVal.toLowerCase(); - switch (normalizedParam) { - case 'true': - case '1': - case 'yes': - case 'on': - // If specified without a value, e.g. `?paramName` then treat it as true - case '': - return true; - case 'false': - case '0': - case 'no': - case 'off': - return false; - } - } - handleBadRequest( - res, - next, - `Unexpected value for '${paramName}' parameter: ${JSON.stringify(paramVal)}` - ); -} - -/** - * Determines if the query parameters of a request are intended to include unanchored tx data. - * If an error is encountered while parsing the query param then a 400 response with an error message - * is sent and the function returns `void`. - */ -export function isUnanchoredRequest( - req: Request, - res: Response, - next: NextFunction -): boolean | never { - const paramName = 'unanchored'; - return booleanValueForParam(req, res, next, paramName); -} - /** * Determines if the query parameters of a request are intended to include data for a specific block height, * or if the request intended to include unanchored tx data. If neither a block height parameter or an unanchored @@ -98,94 +29,6 @@ export function getBlockParams( } } -/** - * Parses a block height value from a given request query param. - * If an error is encountered while parsing the param then a 400 response with an error message is sent and the function throws. - * @param queryParamName - name of the query param - * @param paramRequired - if true then the function will throw and return a 400 if the param is missing, if false then the function will return null if the param is missing - */ -export function getBlockHeightQueryParam( - queryParamName: string, - paramRequired: TRequired, - req: Request, - res: Response, - next: NextFunction -): TRequired extends true ? number | never : number | null { - if (!(queryParamName in req.query)) { - if (paramRequired) { - handleBadRequest( - res, - next, - `Request is missing required "${queryParamName}" query parameter` - ); - } else { - return null as TRequired extends true ? number : number | null; - } - } - const heightParamVal = req.query[queryParamName]; - if (typeof heightParamVal !== 'string') { - handleBadRequest( - res, - next, - `Unexpected type for block height query parameter: ${JSON.stringify(heightParamVal)}` - ); - } - const height = parseInt(heightParamVal, 10); - if (!Number.isInteger(height)) { - handleBadRequest( - res, - next, - `Unexpected non-integer value for block height query parameter': ${heightParamVal}}` - ); - } - if (height < 1) { - handleBadRequest( - res, - next, - `Unexpected integer value for block height query parameter: ${heightParamVal}` - ); - } - return height; -} - -/** - * Determines the block height path parameters of a request. - * If an error is encountered while parsing the params then a 400 response with an error message is sent and the function throws. - */ -export function getBlockHeightPathParam( - req: Request, - res: Response, - next: NextFunction -): number | never { - if (!('height' in req.params) && !('block_height' in req.params)) { - handleBadRequest(res, next, `Request is missing required block height path parameter`); - } - const heightParamVal = req.params['height'] ?? req.params['block_height']; - if (typeof heightParamVal !== 'string') { - handleBadRequest( - res, - next, - `Unexpected type for block height path parameter: ${JSON.stringify(heightParamVal)}` - ); - } - const height = parseInt(heightParamVal, 10); - if (!Number.isInteger(height)) { - handleBadRequest( - res, - next, - `Unexpected non-integer value for block height path parameter': ${heightParamVal}}` - ); - } - if (height < 1) { - handleBadRequest( - res, - next, - `Unexpected integer value for block height path parameter: ${heightParamVal}` - ); - } - return height; -} - /** * Determine if until_block query parameter exists or is an integer or string or if it is a valid height * if it is a string with "0x" prefix consider it a block_hash if it is integer consider it block_height @@ -222,21 +65,6 @@ export function parseUntilBlockQuery( } } -export function parseTraitAbi(req: Request, res: Response, next: NextFunction): ClarityAbi | never { - if (!('trait_abi' in req.query)) { - handleBadRequest(res, next, `Can't find query param 'trait_abi'`); - } - const trait = req.query.trait_abi; - if (typeof trait === 'string') { - const trait_abi: ClarityAbi = JSON.parse(trait); - if (!('functions' in trait_abi)) { - handleBadRequest(res, next, `Invalid 'trait_abi'`); - } - return trait_abi; - } - handleBadRequest(res, next, `Invalid 'trait_abi'`); -} - export function validateRequestHexInput(hash: string) { try { const buffer = hexToBuffer(hash); @@ -257,72 +85,6 @@ export function validatePrincipal(stxAddress: string) { } } -export function parseAddressOrTxId( - req: Request, - res: Response, - next: NextFunction -): { address: string; txId: undefined } | { address: undefined; txId: string } | never { - const address = req.query.address; - const txId = req.query.tx_id; - if (!address && !txId) { - handleBadRequest(res, next, `can not find 'address' or 'tx_id' in the request`); - } - if (address && txId) { - //if mutually exclusive address and txId specified throw - handleBadRequest(res, next, `can't handle both 'address' and 'tx_id' in the same request`); - } - if (address) { - if (typeof address === 'string') { - validatePrincipal(address); - return { address, txId: undefined }; - } - handleBadRequest(res, next, `invalid 'address'`); - } - if (typeof txId === 'string') { - const txIdHex = has0xPrefix(txId) ? txId : '0x' + txId; - validateRequestHexInput(txIdHex); - return { address: undefined, txId: txIdHex }; - } - handleBadRequest(res, next, `invalid 'tx_id'`); -} - -export function parseEventTypeFilter( - req: Request, - res: Response, - next: NextFunction -): DbEventTypeId[] { - const typeQuery = req.query.type; - let eventTypeFilter: DbEventTypeId[]; - if (Array.isArray(typeQuery)) { - try { - eventTypeFilter = parseEventTypeStrings(typeQuery as string[]); - } catch (error) { - handleBadRequest(res, next, `invalid 'event type'`); - } - } else if (typeof typeQuery === 'string') { - try { - if (typeQuery.includes(',')) { - eventTypeFilter = parseEventTypeStrings(typeQuery.split(',')); - } else { - eventTypeFilter = parseEventTypeStrings([typeQuery]); - } - } catch (error) { - handleBadRequest(res, next, `invalid 'event type'`); - } - } else if (typeQuery) { - handleBadRequest(res, next, `invalid 'event type format'`); - } else { - eventTypeFilter = [ - DbEventTypeId.SmartContractLog, - DbEventTypeId.StxAsset, - DbEventTypeId.FungibleTokenAsset, - DbEventTypeId.NonFungibleTokenAsset, - DbEventTypeId.StxLock, - ]; //no filter provided , return all types of events - } - - return eventTypeFilter; -} export function isValidTxId(tx_id: string) { try { validateRequestHexInput(tx_id); @@ -331,13 +93,3 @@ export function isValidTxId(tx_id: string) { return false; } } - -/** - * Returns the query string of a request, including the leading '?' character. - * If the request does not have a query string then an empty string is returned. - */ -export function getReqQuery(req: Request): string { - const fullUrl = `http://${req.headers.host}${req.originalUrl}`; - const urlObject = new URL(fullUrl); - return urlObject.search; -} diff --git a/src/api/routes/address.ts b/src/api/routes/address.ts index 791130e4f..200258743 100644 --- a/src/api/routes/address.ts +++ b/src/api/routes/address.ts @@ -1,8 +1,12 @@ -import * as Bluebird from 'bluebird'; import { BlockIdentifier } from '../../datastore/common'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; import { getBlockParams, parseUntilBlockQuery, validatePrincipal } from '../query-helpers'; -import { formatMapToObject, getSendManyContract, isValidPrincipal } from '../../helpers'; +import { + formatMapToObject, + getSendManyContract, + isValidPrincipal, + mapSeriesAsync, +} from '../../helpers'; import { getTxFromDataStore, parseDbEvent, @@ -474,7 +478,7 @@ export const AddressRoutes: FastifyPluginAsync< atSingleBlock, }); - const results = await Bluebird.mapSeries(txResults, async entry => { + const results = await mapSeriesAsync(txResults, async entry => { const txQuery = await getTxFromDataStore(fastify.db, { txId: entry.tx.tx_id, dbTx: entry.tx, diff --git a/src/btc-faucet.ts b/src/btc-faucet.ts index 44b29bf05..0a4e9d6aa 100644 --- a/src/btc-faucet.ts +++ b/src/btc-faucet.ts @@ -1,8 +1,7 @@ import { RPCClient } from 'rpc-bitcoin'; import * as btc from 'bitcoinjs-lib'; import * as ecc from 'tiny-secp256k1'; -import * as Bluebird from 'bluebird'; -import { parsePort } from './helpers'; +import { mapSeriesAsync, parsePort } from './helpers'; import * as coinselect from 'coinselect'; import { ECPair, ECPairInterface, validateSigFunction } from './ec-helpers'; import { BtcFaucetConfigError } from './errors'; @@ -135,7 +134,7 @@ async function getRawTransactions(client: RPCClient, txIds: string[]): Promise { // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return await Bluebird.mapSeries(txIds, async txId => + return await mapSeriesAsync(txIds, async txId => client.getrawtransaction({ txid: txId, verbose: true }) ); }, diff --git a/src/datastore/pg-store.ts b/src/datastore/pg-store.ts index d8bda1c09..1bcfc77b8 100644 --- a/src/datastore/pg-store.ts +++ b/src/datastore/pg-store.ts @@ -101,7 +101,6 @@ import { } from './connection'; import * as path from 'path'; import { PgStoreV2 } from './pg-store-v2'; -import { MempoolOrderByParam, OrderParam } from '../api/query-helpers'; import { Fragment } from 'postgres'; export const MIGRATIONS_DIR = path.join(REPO_DIR, 'migrations'); diff --git a/src/helpers.ts b/src/helpers.ts index 834ad1077..0e54b057e 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -825,3 +825,18 @@ export class BitVec { return bitVecStr; } } + +/** + * Runs an array of promises sequentially, mapping each item to a promise and awaiting its result before moving to the next. + */ +export async function mapSeriesAsync( + items: T[], + mapper: (item: T, index: number, array: T[]) => Promise +): Promise { + const results: U[] = []; + for (let i = 0; i < items.length; i++) { + const result = await mapper(items[i], i, items); + results.push(result); + } + return results; +} diff --git a/src/index.ts b/src/index.ts index 119dab6de..7ee96e3ec 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,7 +11,6 @@ import { startEventServer } from './event-stream/event-server'; import { StacksCoreRpcClient } from './core-rpc/client'; import { getSummary } from '@promster/metrics'; import { OfflineDummyStore } from './datastore/offline-dummy-store'; -import { Socket } from 'net'; import * as getopts from 'getopts'; import * as fs from 'fs'; import { injectC32addressEncodeCache } from './c32-addr-cache'; From 92997278759bb3282719e2d81ac154905a839432 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 5 Aug 2024 19:29:03 +0200 Subject: [PATCH 28/56] feat: openAPI spec generation from fastify routes --- package.json | 1 + src/@types/fastify/index.d.ts | 11 ++ src/api/init.ts | 201 +++++++++++++++++----------------- src/api/routes/bns/pricing.ts | 6 +- src/api/routes/debug.ts | 66 ++++++----- src/api/routes/faucets.ts | 10 +- src/api/routes/pox.ts | 2 +- src/api/routes/status.ts | 4 +- src/api/routes/v2/pox.ts | 4 +- src/api/schemas/openapi.ts | 113 +++++++++++++++++++ src/openapi-generator.ts | 26 +++++ tsconfig.json | 6 +- 12 files changed, 313 insertions(+), 137 deletions(-) create mode 100644 src/@types/fastify/index.d.ts create mode 100644 src/api/schemas/openapi.ts create mode 100644 src/openapi-generator.ts diff --git a/package.json b/package.json index 5a4e93862..980d23294 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "test:integration:event-replay": "concurrently \"docker compose -f docker/docker-compose.dev.postgres.yml up --force-recreate -V\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.event-replay.js --no-cache --runInBand; npm run devenv:stop\"", "test:integration:btc-faucet": "concurrently \"docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.bitcoind.yml up --force-recreate -V\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.btc-faucet.js --no-cache --runInBand; npm run devenv:stop\"", "generate:git-info": "rimraf .git-info && api-toolkit-git-info", + "generate:openapi": "node -r ts-node/register ./src/openapi-generator.ts", "build": "npm run generate:git-info && rimraf ./lib && tsc -p tsconfig.build.json", "build:tests": "tsc -p tsconfig.json", "build:docs": "npm ci --prefix docs && npm run build --prefix docs && npm ci --prefix client && npm run generate:docs --prefix client", diff --git a/src/@types/fastify/index.d.ts b/src/@types/fastify/index.d.ts new file mode 100644 index 000000000..953cc41eb --- /dev/null +++ b/src/@types/fastify/index.d.ts @@ -0,0 +1,11 @@ +import fastify from 'fastify'; +import { PgStore } from '../../datastore/pg-store'; +import { PgWriteStore } from '../../datastore/pg-write-store'; + +declare module 'fastify' { + interface FastifyInstance { + db: PgStore; + writeDb?: PgWriteStore; + chainId: ChainID; + } +} diff --git a/src/api/init.ts b/src/api/init.ts index 0b1a9d639..df3e69d4a 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -1,7 +1,6 @@ import { Server, createServer } from 'http'; import { Socket } from 'net'; import * as express from 'express'; -import { v4 as uuid } from 'uuid'; import * as cors from 'cors'; import { TxRoutes } from './routes/tx'; @@ -53,21 +52,12 @@ import { SmartContractRoutesV2 } from './routes/v2/smart-contracts'; import { AddressRoutesV2 } from './routes/v2/addresses'; import { PoxRoutesV2 } from './routes/v2/pox'; -import Fastify, { FastifyInstance } from 'fastify'; +import Fastify, { FastifyInstance, FastifyPluginAsync } from 'fastify'; import FastifyMetrics from 'fastify-metrics'; import FastifyCors from '@fastify/cors'; import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; -declare module 'fastify' { - interface FastifyInstance { - db: PgStore; - writeDb?: PgWriteStore; - chainId: ChainID; - } -} - export interface ApiServer { - expressApp: express.Express; fastifyApp: FastifyInstance; server: Server; ws: WebSocketTransmitter; @@ -77,30 +67,56 @@ export interface ApiServer { forceKill: () => Promise; } -export async function startApiServer(opts: { - datastore: PgStore; - writeDatastore?: PgWriteStore; - chainId: ChainID; - /** If not specified, this is read from the STACKS_BLOCKCHAIN_API_HOST env var. */ - serverHost?: string; - /** If not specified, this is read from the STACKS_BLOCKCHAIN_API_PORT env var. */ - serverPort?: number; -}): Promise { - const { datastore, writeDatastore, chainId, serverHost, serverPort } = opts; - const app = express(); - const apiHost = serverHost ?? process.env['STACKS_BLOCKCHAIN_API_HOST']; - const apiPort = serverPort ?? parseInt(process.env['STACKS_BLOCKCHAIN_API_PORT'] ?? ''); +export const StacksApiRoutes: FastifyPluginAsync< + Record, + Server, + TypeBoxTypeProvider +> = async fastify => { + await fastify.register(StatusRoutes); + await fastify.register( + async fastify => { + await fastify.register(TxRoutes, { prefix: '/tx' }); + await fastify.register(StxSupplyRoutes, { prefix: '/stx_supply' }); + await fastify.register(InfoRoutes, { prefix: '/info' }); + await fastify.register(TokenRoutes, { prefix: '/tokens' }); + await fastify.register(ContractRoutes, { prefix: '/contract' }); + await fastify.register(FeeRateRoutes, { prefix: '/fee_rate' }); + await fastify.register(MicroblockRoutes, { prefix: '/microblock' }); + await fastify.register(BlockRoutes, { prefix: '/block' }); + await fastify.register(BurnchainRoutes, { prefix: '/burnchain' }); + await fastify.register(AddressRoutes, { prefix: '/address' }); + await fastify.register(SearchRoutes, { prefix: '/search' }); + await fastify.register(PoxRoutes, { prefix: '/:pox(pox\\d)' }); + await fastify.register(PoxEventRoutes, { prefix: '/:(pox\\d_events)' }); + await fastify.register(FaucetRoutes, { prefix: '/faucets' }); + await fastify.register(DebugRoutes, { prefix: '/debug' }); + }, + { prefix: '/extended/v1' } + ); - if (!apiHost) { - throw new Error( - `STACKS_BLOCKCHAIN_API_HOST must be specified, e.g. "STACKS_BLOCKCHAIN_API_HOST=127.0.0.1"` - ); - } - if (!apiPort) { - throw new Error( - `STACKS_BLOCKCHAIN_API_PORT must be specified, e.g. "STACKS_BLOCKCHAIN_API_PORT=3999"` - ); - } + await fastify.register( + async fastify => { + await fastify.register(BlockRoutesV2, { prefix: '/blocks' }); + await fastify.register(BurnBlockRoutesV2, { prefix: '/burn-blocks' }); + await fastify.register(SmartContractRoutesV2, { prefix: '/smart-contracts' }); + await fastify.register(MempoolRoutesV2, { prefix: '/mempool' }); + await fastify.register(PoxRoutesV2, { prefix: '/pox' }); + await fastify.register(AddressRoutesV2, { prefix: '/addresses' }); + }, + { prefix: '/extended/v2' } + ); + + // Setup legacy API v1 and v2 routes + await fastify.register(BnsNameRoutes, { prefix: '/v1/names' }); + await fastify.register(BnsNamespaceRoutes, { prefix: '/v1/namespaces' }); + await fastify.register(BnsAddressRoutes, { prefix: '/v1/addresses' }); + await fastify.register(BnsPriceRoutes, { prefix: '/v2/prices' }); + + await Promise.resolve(); +}; + +function createRosettaServer(datastore: PgStore, chainId: ChainID) { + const app = express(); // Add API version to header app.use((_, res, next) => { @@ -142,21 +158,19 @@ export async function startApiServer(opts: { res.send(errObj).status(404); }); - // Rosetta API -- https://www.rosetta-api.org - if (parseBoolean(process.env['STACKS_API_ENABLE_ROSETTA'] ?? '1')) - app.use( - '/rosetta/v1', - (() => { - const router = express.Router(); - router.use(cors()); - router.use('/network', createRosettaNetworkRouter(datastore, chainId)); - router.use('/mempool', createRosettaMempoolRouter(datastore, chainId)); - router.use('/block', createRosettaBlockRouter(datastore, chainId)); - router.use('/account', createRosettaAccountRouter(datastore, chainId)); - router.use('/construction', createRosettaConstructionRouter(datastore, chainId)); - return router; - })() - ); + app.use( + '/rosetta/v1', + (() => { + const router = express.Router(); + router.use(cors()); + router.use('/network', createRosettaNetworkRouter(datastore, chainId)); + router.use('/mempool', createRosettaMempoolRouter(datastore, chainId)); + router.use('/block', createRosettaBlockRouter(datastore, chainId)); + router.use('/account', createRosettaAccountRouter(datastore, chainId)); + router.use('/construction', createRosettaConstructionRouter(datastore, chainId)); + return router; + })() + ); //handle invalid request gracefully app.use((req, res) => { @@ -173,24 +187,54 @@ export async function startApiServer(opts: { res.status(503).json({ error: `The database service is unavailable` }).end(); } else { res.status(500); - const errorTag = uuid(); - Object.assign(error, { errorTag: errorTag }); - res - .json({ error: error.toString(), stack: (error as Error).stack, errorTag: errorTag }) - .end(); + res.json({ error: error.toString(), stack: (error as Error).stack }).end(); } } next(error); }) as express.ErrorRequestHandler); + return app; +} + +export async function startApiServer(opts: { + datastore: PgStore; + writeDatastore?: PgWriteStore; + chainId: ChainID; + /** If not specified, this is read from the STACKS_BLOCKCHAIN_API_HOST env var. */ + serverHost?: string; + /** If not specified, this is read from the STACKS_BLOCKCHAIN_API_PORT env var. */ + serverPort?: number; +}): Promise { + const { datastore, writeDatastore, chainId, serverHost, serverPort } = opts; + + const apiHost = serverHost ?? process.env['STACKS_BLOCKCHAIN_API_HOST']; + const apiPort = serverPort ?? parseInt(process.env['STACKS_BLOCKCHAIN_API_PORT'] ?? ''); + + if (!apiHost) { + throw new Error( + `STACKS_BLOCKCHAIN_API_HOST must be specified, e.g. "STACKS_BLOCKCHAIN_API_HOST=127.0.0.1"` + ); + } + if (!apiPort) { + throw new Error( + `STACKS_BLOCKCHAIN_API_PORT must be specified, e.g. "STACKS_BLOCKCHAIN_API_PORT=3999"` + ); + } + + // Rosetta API -- https://www.rosetta-api.org + let expressApp: express.Express | undefined; + if (parseBoolean(process.env['STACKS_API_ENABLE_ROSETTA'] ?? '1')) { + expressApp = createRosettaServer(datastore, chainId); + } + const fastify = Fastify({ trustProxy: true, logger: PINO_LOGGER_CONFIG, }).withTypeProvider(); - fastify.decorate('db', opts.datastore); - fastify.decorate('writeDb', opts.writeDatastore); - fastify.decorate('chainId', opts.chainId); + fastify.decorate('db', datastore); + fastify.decorate('writeDb', writeDatastore); + fastify.decorate('chainId', chainId); await fastify.register(FastifyMetrics, { endpoint: null }); await fastify.register(FastifyCors, { exposedHeaders: ['X-API-Version'] }); @@ -205,45 +249,7 @@ export async function startApiServer(opts: { void reply.header('Cache-Control', 'no-store'); }); - await fastify.register(StatusRoutes); - await fastify.register( - async fastify => { - await fastify.register(TxRoutes, { prefix: '/tx' }); - await fastify.register(StxSupplyRoutes, { prefix: '/stx_supply' }); - await fastify.register(InfoRoutes, { prefix: '/info' }); - await fastify.register(TokenRoutes, { prefix: '/tokens' }); - await fastify.register(ContractRoutes, { prefix: '/contract' }); - await fastify.register(FeeRateRoutes, { prefix: '/fee_rate' }); - await fastify.register(MicroblockRoutes, { prefix: '/microblock' }); - await fastify.register(BlockRoutes, { prefix: '/block' }); - await fastify.register(BurnchainRoutes, { prefix: '/burnchain' }); - await fastify.register(AddressRoutes, { prefix: '/address' }); - await fastify.register(SearchRoutes, { prefix: '/search' }); - await fastify.register(PoxRoutes, { prefix: '/:pox(pox\\d)' }); - await fastify.register(PoxEventRoutes, { prefix: '/:(pox\\d_events)' }); - await fastify.register(FaucetRoutes, { prefix: '/faucets' }); - await fastify.register(DebugRoutes, { prefix: '/debug' }); - }, - { prefix: '/extended/v1' } - ); - - await fastify.register( - async fastify => { - await fastify.register(BlockRoutesV2, { prefix: '/blocks' }); - await fastify.register(BurnBlockRoutesV2, { prefix: '/burn-blocks' }); - await fastify.register(SmartContractRoutesV2, { prefix: '/smart-contracts' }); - await fastify.register(MempoolRoutesV2, { prefix: '/mempool' }); - await fastify.register(PoxRoutesV2, { prefix: '/pox' }); - await fastify.register(AddressRoutesV2, { prefix: '/addresses' }); - }, - { prefix: '/extended/v2' } - ); - - // Setup legacy API v1 and v2 routes - await fastify.register(BnsNameRoutes, { prefix: '/v1/names' }); - await fastify.register(BnsNamespaceRoutes, { prefix: '/v1/namespaces' }); - await fastify.register(BnsAddressRoutes, { prefix: '/v1/addresses' }); - await fastify.register(BnsPriceRoutes, { prefix: '/v2/prices' }); + await fastify.register(StacksApiRoutes); // Setup direct proxy to core-node RPC endpoints (/v2) await fastify.register(CoreNodeRpcProxyRouter, { prefix: '/v2' }); @@ -258,7 +264,7 @@ export async function startApiServer(opts: { const server = createServer((req, res) => { if (rosettaPath.test(req.url as string)) { // handle with express - app(req, res); + expressApp?.(req, res); } else { // handle with fastify fastify.server.emit('request', req, res); @@ -331,7 +337,6 @@ export async function startApiServer(opts: { } const addrStr = typeof addr === 'string' ? addr : `${addr.address}:${addr.port}`; return { - expressApp: app, fastifyApp: fastify, server: server, ws: ws, diff --git a/src/api/routes/bns/pricing.ts b/src/api/routes/bns/pricing.ts index 1b377f635..ecfff47dd 100644 --- a/src/api/routes/bns/pricing.ts +++ b/src/api/routes/bns/pricing.ts @@ -20,8 +20,6 @@ export const BnsPriceRoutes: FastifyPluginAsync< Server, TypeBoxTypeProvider > = async fastify => { - const stacksNetwork = GetStacksNetwork(fastify.chainId); - fastify.get( '/namespaces/:tld', { @@ -70,7 +68,7 @@ export const BnsPriceRoutes: FastifyPluginAsync< contractName: bnsContractName, functionName: 'get-namespace-price', functionArgs: [bufferCVFromString(namespace)], - network: stacksNetwork, + network: GetStacksNetwork(fastify.chainId), }; const contractCallTx = await callReadOnlyFunction(txOptions); if ( @@ -146,7 +144,7 @@ export const BnsPriceRoutes: FastifyPluginAsync< contractName: bnsContractName, functionName: 'get-name-price', functionArgs: [bufferCVFromString(namespace), bufferCVFromString(name)], - network: stacksNetwork, + network: GetStacksNetwork(fastify.chainId), }; const contractCall = await callReadOnlyFunction(txOptions); diff --git a/src/api/routes/debug.ts b/src/api/routes/debug.ts index 2d2c6acf5..fa8c46754 100644 --- a/src/api/routes/debug.ts +++ b/src/api/routes/debug.ts @@ -136,12 +136,11 @@ export const DebugRoutes: FastifyPluginAsync< await fastify.register(fastifyFormbody); const defaultTxFee = 123450; - const stacksNetwork = getStacksTestnetNetwork(); const routes: RouteOptions[] = []; fastify.addHook('onRoute', route => void routes.push(route)); - fastify.get('/broadcast', async (req, reply) => { + fastify.get('/broadcast', { schema: { hide: true } }, async (req, reply) => { const paths = routes .filter(r => r.method === 'GET') .filter(r => !r.schema?.params) @@ -194,14 +193,19 @@ export const DebugRoutes: FastifyPluginAsync< `; - fastify.get('/broadcast/token-transfer-from-multisig', async (req, reply) => { - await reply.type('text/html').send(tokenTransferFromMultisigHtml); - }); + fastify.get( + '/broadcast/token-transfer-from-multisig', + { schema: { hide: true } }, + async (req, reply) => { + await reply.type('text/html').send(tokenTransferFromMultisigHtml); + } + ); fastify.post( '/broadcast/token-transfer-from-multisig', { schema: { + hide: true, body: Type.Object({ sponsored: Type.Optional(Type.Literal('sponsored')), signers: Type.Array(Type.String()), @@ -231,7 +235,7 @@ export const DebugRoutes: FastifyPluginAsync< recipient: recipient_address, amount: BigInt(stx_amount), memo: memo, - network: stacksNetwork, + network: getStacksTestnetNetwork(), numSignatures: sigsRequired, publicKeys: signerPubKeys, sponsored: sponsored, @@ -253,7 +257,7 @@ export const DebugRoutes: FastifyPluginAsync< if (sponsored) { const sponsorKey = testnetKeys[testnetKeys.length - 1].secretKey; const sponsoredTx = await sponsorTransaction({ - network: stacksNetwork, + network: getStacksTestnetNetwork(), transaction: transferTx, sponsorPrivateKey: sponsorKey, fee: defaultTxFee, @@ -318,14 +322,19 @@ export const DebugRoutes: FastifyPluginAsync< `; - fastify.get('/broadcast/token-transfer-multisig', async (req, res) => { - await res.type('text/html').send(tokenTransferMultisigHtml); - }); + fastify.get( + '/broadcast/token-transfer-multisig', + { schema: { hide: true } }, + async (req, res) => { + await res.type('text/html').send(tokenTransferMultisigHtml); + } + ); fastify.post( '/broadcast/token-transfer-multisig', { schema: { + hide: true, body: Type.Object({ origin_key: Type.String(), recipient_addresses: Type.Array(Type.String()), @@ -353,7 +362,7 @@ export const DebugRoutes: FastifyPluginAsync< const sigRequired = signatures_required; const recipientAddress = addressToString( addressFromPublicKeys( - stacksNetwork.version === TransactionVersion.Testnet + getStacksTestnetNetwork().version === TransactionVersion.Testnet ? AddressVersion.TestnetMultiSig : AddressVersion.MainnetMultiSig, AddressHashMode.SerializeP2SH, @@ -366,7 +375,7 @@ export const DebugRoutes: FastifyPluginAsync< recipient: recipientAddress, amount: BigInt(stx_amount), memo: memo, - network: stacksNetwork, + network: getStacksTestnetNetwork(), senderKey: origin_key, sponsored: sponsored, anchorMode: AnchorMode.Any, @@ -378,7 +387,7 @@ export const DebugRoutes: FastifyPluginAsync< if (sponsored) { const sponsorKey = testnetKeys[testnetKeys.length - 1].secretKey; const sponsoredTx = await sponsorTransaction({ - network: stacksNetwork, + network: getStacksTestnetNetwork(), transaction: transferTx, sponsorPrivateKey: sponsorKey, fee: defaultTxFee, @@ -451,7 +460,7 @@ export const DebugRoutes: FastifyPluginAsync< `; - fastify.get('/broadcast/token-transfer', async (req, res) => { + fastify.get('/broadcast/token-transfer', { schema: { hide: true } }, async (req, res) => { await res.type('text/html').send(tokenTransferHtml); }); @@ -459,6 +468,7 @@ export const DebugRoutes: FastifyPluginAsync< '/broadcast/token-transfer', { schema: { + hide: true, body: Type.Object({ origin_key: Type.String(), recipient_address: Type.String(), @@ -490,7 +500,7 @@ export const DebugRoutes: FastifyPluginAsync< recipient: recipient_address, amount: BigInt(stx_amount), senderKey: origin_key, - network: stacksNetwork, + network: getStacksTestnetNetwork(), memo: memo, sponsored: sponsored, nonce: txNonce, @@ -503,7 +513,7 @@ export const DebugRoutes: FastifyPluginAsync< if (sponsored) { const sponsorKey = testnetKeys[testnetKeys.length - 1].secretKey; const sponsoredTx = await sponsorTransaction({ - network: stacksNetwork, + network: getStacksTestnetNetwork(), transaction: transferTx, sponsorPrivateKey: sponsorKey, fee: defaultTxFee, @@ -568,7 +578,7 @@ export const DebugRoutes: FastifyPluginAsync< `; - fastify.get('/broadcast/stack', async (req, res) => { + fastify.get('/broadcast/stack', { schema: { hide: true } }, async (req, res) => { await res.type('text/html').send(sendPoxHtml); }); @@ -703,6 +713,7 @@ export const DebugRoutes: FastifyPluginAsync< '/broadcast/stack', { schema: { + hide: true, body: Type.Object({ origin_key: Type.String(), recipient_address: Type.String(), @@ -749,7 +760,7 @@ export const DebugRoutes: FastifyPluginAsync< const poxAddrTuple = poxAddressToTuple(recipient_address); burnBlockHeight = poxInfo.current_burnchain_block_height as number; - const stackingRpc = new StackingClient('', stacksNetwork); + const stackingRpc = new StackingClient('', getStacksTestnetNetwork()); const signerPrivKey = makeRandomPrivKey(); const signerPubKey = getPublicKeyFromPrivate(signerPrivKey.data); const authId = `0x${randomBytes(16).toString('hex')}`; @@ -779,7 +790,7 @@ export const DebugRoutes: FastifyPluginAsync< uintCV(ustxAmount), // max-amount uintCV(authId), // auth-id ], - network: stacksNetwork, + network: getStacksTestnetNetwork(), anchorMode: AnchorMode.Any, fee: 10000, validateWithAbi: false, @@ -823,6 +834,7 @@ export const DebugRoutes: FastifyPluginAsync< '/rosetta/tx/:tx_id', { schema: { + hide: true, params: Type.Object({ tx_id: Type.String(), }), @@ -887,7 +899,7 @@ export const DebugRoutes: FastifyPluginAsync< `; - fastify.get('/broadcast/contract-deploy', async (req, res) => { + fastify.get('/broadcast/contract-deploy', { schema: { hide: true } }, async (req, res) => { await res.type('text/html').send(contractDeployHtml); }); @@ -895,6 +907,7 @@ export const DebugRoutes: FastifyPluginAsync< '/broadcast/contract-deploy', { schema: { + hide: true, body: Type.Object({ origin_key: Type.String(), contract_name: Type.String(), @@ -907,7 +920,7 @@ export const DebugRoutes: FastifyPluginAsync< const { origin_key, contract_name, source_code } = req.body; const sponsored = !!req.body.sponsored; - const senderAddress = getAddressFromPrivateKey(origin_key, stacksNetwork.version); + const senderAddress = getAddressFromPrivateKey(origin_key, getStacksTestnetNetwork().version); const normalized_contract_source = source_code.replace(/\r/g, '').replace(/\t/g, ' '); const contractDeployTx = await makeContractDeploy({ @@ -927,7 +940,7 @@ export const DebugRoutes: FastifyPluginAsync< if (sponsored) { const sponsorKey = testnetKeys[testnetKeys.length - 1].secretKey; const sponsoredTx = await sponsorTransaction({ - network: stacksNetwork, + network: getStacksTestnetNetwork(), transaction: contractDeployTx, sponsorPrivateKey: sponsorKey, fee: defaultTxFee, @@ -996,6 +1009,7 @@ export const DebugRoutes: FastifyPluginAsync< '/broadcast/contract-call/:contract_id', { schema: { + hide: true, params: Type.Object({ contract_id: Type.String(), }), @@ -1053,6 +1067,7 @@ export const DebugRoutes: FastifyPluginAsync< '/broadcast/contract-call/:contract_id', { schema: { + hide: true, params: Type.Object({ contract_id: Type.String(), }), @@ -1101,7 +1116,7 @@ export const DebugRoutes: FastifyPluginAsync< functionName: functionName, functionArgs: clarityValueArgs, senderKey: originKey, - network: stacksNetwork, + network: getStacksTestnetNetwork(), fee: defaultTxFee, postConditionMode: PostConditionMode.Allow, sponsored: sponsored, @@ -1113,7 +1128,7 @@ export const DebugRoutes: FastifyPluginAsync< if (sponsored) { const sponsorKey = testnetKeys[testnetKeys.length - 1].secretKey; const sponsoredTx = await sponsorTransaction({ - network: stacksNetwork, + network: getStacksTestnetNetwork(), transaction: contractCallTx, sponsorPrivateKey: sponsorKey, fee: defaultTxFee, @@ -1154,7 +1169,7 @@ export const DebugRoutes: FastifyPluginAsync< `; - fastify.get('/watch-tx', async (req, res) => { + fastify.get('/watch-tx', { schema: { hide: true } }, async (req, res) => { await res.type('text/html').send(txWatchHtml); }); @@ -1162,6 +1177,7 @@ export const DebugRoutes: FastifyPluginAsync< '/faucet', { schema: { + hide: true, querystring: Type.Object({ address: Type.Optional(Type.String()) }), body: OptionalNullable(Type.Object({ address: Type.Optional(Type.String()) })), }, diff --git a/src/api/routes/faucets.ts b/src/api/routes/faucets.ts index b2aee775e..0e7230041 100644 --- a/src/api/routes/faucets.ts +++ b/src/api/routes/faucets.ts @@ -247,7 +247,7 @@ export const FaucetRoutes: FastifyPluginAsync< const FAUCET_STACKING_WINDOW = 2 * 24 * 60 * 60 * 1000; // 2 days const FAUCET_STACKING_TRIGGER_COUNT = 1; - const STX_FAUCET_NETWORKS = getStxFaucetNetworks(); + const STX_FAUCET_NETWORKS = () => getStxFaucetNetworks(); const STX_FAUCET_KEYS = (process.env.FAUCET_PRIVATE_KEY ?? testnetKeys[0].secretKey).split(','); fastify.post( @@ -366,7 +366,7 @@ export const FaucetRoutes: FastifyPluginAsync< } const stxAmounts: bigint[] = []; - for (const network of STX_FAUCET_NETWORKS) { + for (const network of STX_FAUCET_NETWORKS()) { try { let stxAmount = FAUCET_DEFAULT_STX_AMOUNT; if (isStackingReq) { @@ -424,7 +424,7 @@ export const FaucetRoutes: FastifyPluginAsync< const nonces: bigint[] = []; const fees: bigint[] = []; let txGenFetchError: Error | undefined; - for (const network of STX_FAUCET_NETWORKS) { + for (const network of STX_FAUCET_NETWORKS()) { try { const tx = await generateTx(network, 0); nonces.push(tx.auth.spendingCondition?.nonce ?? BigInt(0)); @@ -445,9 +445,9 @@ export const FaucetRoutes: FastifyPluginAsync< let lastSendError: Error | undefined; let stxKeyIndex = 0; do { - const tx = await generateTx(STX_FAUCET_NETWORKS[0], stxKeyIndex, nextNonce, fee); + const tx = await generateTx(STX_FAUCET_NETWORKS()[0], stxKeyIndex, nextNonce, fee); const rawTx = Buffer.from(tx.serialize()); - for (const network of STX_FAUCET_NETWORKS) { + for (const network of STX_FAUCET_NETWORKS()) { const rpcClient = clientFromNetwork(network); try { const res = await rpcClient.sendTransaction(rawTx); diff --git a/src/api/routes/pox.ts b/src/api/routes/pox.ts index fbf8977a8..be5128113 100644 --- a/src/api/routes/pox.ts +++ b/src/api/routes/pox.ts @@ -15,7 +15,7 @@ export const PoxEventRoutes: FastifyPluginAsync< Server, TypeBoxTypeProvider > = async fastify => { - fastify.get('/', async (req, reply) => { + fastify.get('/', { schema: { hide: true } }, async (req, reply) => { // Redirect old pox routes, e.g. /poxX_events to /poxX/events const redirectUrl = req.url.replace(/(pox[\d])_events/, '$1/events'); return reply.redirect(redirectUrl); diff --git a/src/api/routes/status.ts b/src/api/routes/status.ts index 7a63b27e1..f70c39850 100644 --- a/src/api/routes/status.ts +++ b/src/api/routes/status.ts @@ -54,10 +54,10 @@ export const StatusRoutes: FastifyPluginAsync< }, }); - fastify.get('/', async (_, reply) => { + fastify.get('/', { schema: { hide: true } }, async (_, reply) => { await reply.code(301).redirect('/extended'); }); - fastify.get('/extended/v1/status', async (_, reply) => { + fastify.get('/extended/v1/status', { schema: { hide: true } }, async (_, reply) => { await reply.code(301).redirect('/extended'); }); diff --git a/src/api/routes/v2/pox.ts b/src/api/routes/v2/pox.ts index d6fb15f9f..40fd9bfe2 100644 --- a/src/api/routes/v2/pox.ts +++ b/src/api/routes/v2/pox.ts @@ -23,7 +23,7 @@ export const PoxRoutesV2: FastifyPluginAsync< Server, TypeBoxTypeProvider > = async fastify => { - const isMainnet = getChainIDNetwork(fastify.chainId) === 'mainnet'; + const getIsMainnet = () => getChainIDNetwork(fastify.chainId) === 'mainnet'; fastify.get( '/cycles', @@ -113,6 +113,7 @@ export const PoxRoutesV2: FastifyPluginAsync< ...params, ...query, }); + const isMainnet = getIsMainnet(); const signers: PoxSigner[] = results.map(r => parseDbPoxSigner(r, isMainnet)); await reply.send({ limit, @@ -158,6 +159,7 @@ export const PoxRoutesV2: FastifyPluginAsync< if (!signer) { throw new NotFoundError(); } + const isMainnet = getIsMainnet(); const response: PoxSigner = parseDbPoxSigner(signer, isMainnet); await reply.send(response); } catch (error) { diff --git a/src/api/schemas/openapi.ts b/src/api/schemas/openapi.ts new file mode 100644 index 000000000..ca6038e00 --- /dev/null +++ b/src/api/schemas/openapi.ts @@ -0,0 +1,113 @@ +import { SwaggerOptions } from '@fastify/swagger'; +import { SERVER_VERSION } from '@hirosystems/api-toolkit'; + +export const OpenApiSchemaOptions: SwaggerOptions = { + openapi: { + info: { + title: 'Stacks Blockchain API', + description: `Welcome to the API reference overview for the [Stacks Blockchain API](https://docs.hiro.so/stacks-blockchain-api). + + [Download Postman collection](https://hirosystems.github.io/stacks-blockchain-api/collection.json)`, + version: SERVER_VERSION.tag, + }, + externalDocs: { + url: 'https://github.com/hirosystems/stacks-blockchain-api', + description: 'Source Repository', + }, + servers: [ + { + url: 'https://api.hiro.so/', + description: 'mainnet', + }, + ], + tags: [ + { + name: 'Accounts', + description: 'Read-only endpoints to obtain Stacks account details', + externalDocs: { + description: 'Stacks Documentation - Accounts', + url: 'https://docs.stacks.co/understand-stacks/accounts', + }, + }, + { name: 'Blocks', description: 'Read-only endpoints to obtain Stacks block details' }, + { name: 'Burn Blocks', description: 'Read-only endpoints to obtain burn block details' }, + { + name: 'Faucets', + description: 'Endpoints to request STX or BTC tokens (not possible on Mainnet)', + }, + { name: 'Fees', description: 'Read-only endpoints to obtain fee details' }, + { + name: 'Info', + description: + 'Read-only endpoints to obtain network, Proof-of-Transfer, Stacking, STX token, and node information', + }, + { + name: 'Microblocks', + description: 'Read-only endpoints to obtain microblocks details', + externalDocs: { + description: 'Stacks Documentation - Microblocks', + url: 'https://docs.stacks.co/understand-stacks/microblocks', + }, + }, + { + name: 'Names', + description: 'Read-only endpoints realted to the Blockchain Naming System on Stacks', + externalDocs: { + description: 'Stacks Documentation - Blockchain Naming System', + url: 'https://docs.stacks.co/build-apps/references/bns', + }, + }, + { + name: 'Non-Fungible Tokens', + description: 'Read-only endpoints to obtain non-fungible token details', + externalDocs: { + description: 'Stacks Documentation - Tokens', + url: 'https://docs.stacks.co/write-smart-contracts/tokens', + }, + }, + { + name: 'Rosetta', + description: 'Endpoints to support the Rosetta API open blockchain standard', + externalDocs: { + description: 'Hiro Documentation - Rosetta Support', + url: 'https://docs.hiro.so/get-started/stacks-blockchain-api#rosetta-support', + }, + }, + { + name: 'Search', + description: + 'Read-only endpoints to search for accounts, blocks, smart contracts, and transactions', + }, + { + name: 'Smart Contracts', + description: 'Read-only endpoints to obtain Clarity smart contract details', + externalDocs: { + description: 'Stacks Documentation - Clarity Smart Contracts', + url: 'https://docs.stacks.co/write-smart-contracts/overview', + }, + }, + { + name: 'Stacking Rewards', + description: 'Read-only endpoints to obtain Stacking reward details', + externalDocs: { + description: 'Stacks Documentation - Stacking', + url: 'https://docs.stacks.co/understand-stacks/stacking', + }, + }, + { + name: 'Transactions', + description: + 'Endpoints to obtain transaction details and to broadcast transactions to the network', + externalDocs: { + description: 'Hiro Documentation - Transactions', + url: 'https://docs.hiro.so/get-started/transactions', + }, + }, + { name: 'Mempool', description: 'Endpoints to obtain Mempool information' }, + { + name: 'Proof of Transfer', + description: 'Endpoints to get information about the Proof of Transfer consensus mechanism', + }, + ], + }, +}; diff --git a/src/openapi-generator.ts b/src/openapi-generator.ts new file mode 100644 index 000000000..c7a53b424 --- /dev/null +++ b/src/openapi-generator.ts @@ -0,0 +1,26 @@ +import Fastify from 'fastify'; +import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import FastifySwagger from '@fastify/swagger'; +import { mkdirSync, writeFileSync } from 'fs'; +import { OpenApiSchemaOptions } from './api/schemas/openapi'; +import { StacksApiRoutes } from './api/init'; + +/** + * Generates `openapi.yaml` based on current Swagger definitions. + */ +async function generateOpenApiFiles() { + const fastify = Fastify({ + trustProxy: true, + logger: true, + }).withTypeProvider(); + + await fastify.register(FastifySwagger, OpenApiSchemaOptions); + await fastify.register(StacksApiRoutes); + await fastify.ready(); + mkdirSync('./tmp', { recursive: true }); + writeFileSync('./tmp/openapi.yaml', fastify.swagger({ yaml: true })); + writeFileSync('./tmp/openapi.json', JSON.stringify(fastify.swagger(), null, 2)); + await fastify.close(); +} + +void generateOpenApiFiles(); diff --git a/tsconfig.json b/tsconfig.json index e4ab15e06..93a71d566 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,7 +16,11 @@ "paths": { "@stacks/stacks-blockchain-api-types": ["docs"], "@stacks/blockchain-api-client": ["client/src"] - } + }, + "typeRoots": [ + "./src/@types", + "./node_modules/@types" + ] }, "include": ["src/**/*"], "exclude": ["lib", "node_modules"] From e90b88c0b9cb5d7ce5dbd654907378da2c801d6d Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 5 Aug 2024 19:50:19 +0200 Subject: [PATCH 29/56] chore: remove references to legacy generated types --- src/api/routes/bns/names.ts | 13 ++++--------- src/api/routes/bns/namespaces.ts | 3 +-- src/api/routes/fee-rate.ts | 3 +-- src/api/routes/tx.ts | 3 +-- src/api/routes/v2/helpers.ts | 14 ++++---------- src/api/serializers/post-conditions.ts | 14 +++----------- src/core-rpc/client.ts | 8 -------- src/datastore/common.ts | 3 +-- src/datastore/helpers.ts | 5 ++--- src/datastore/pg-store.ts | 16 +++++----------- src/tests-rpc/core-rpc-tests.ts | 5 ----- 11 files changed, 22 insertions(+), 65 deletions(-) diff --git a/src/api/routes/bns/names.ts b/src/api/routes/bns/names.ts index f7250a408..dce779fcc 100644 --- a/src/api/routes/bns/names.ts +++ b/src/api/routes/bns/names.ts @@ -1,6 +1,5 @@ import { parsePagingQueryInput } from '../../../api/pagination'; import { bnsBlockchain, BnsErrors } from '../../../event-stream/bns/bns-constants'; -import { BnsGetNameInfoResponse } from '@stacks/stacks-blockchain-api-types'; import { handleChainTipCache } from '../../../api/controllers/cache-controller'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; @@ -278,7 +277,6 @@ export const BnsNameRoutes: FastifyPluginAsync< await fastify.db .sqlTransaction(async sql => { - let nameInfoResponse: BnsGetNameInfoResponse; // Subdomain case if (name.split('.').length == 3) { const subdomainQuery = await fastify.db.getSubdomain({ @@ -299,7 +297,7 @@ export const BnsNameRoutes: FastifyPluginAsync< } const { result } = subdomainQuery; - nameInfoResponse = { + const nameInfoResponse = { address: result.owner, blockchain: bnsBlockchain, last_txid: result.tx_id, @@ -308,6 +306,7 @@ export const BnsNameRoutes: FastifyPluginAsync< zonefile: result.zonefile, zonefile_hash: result.zonefile_hash, }; + await reply.send(nameInfoResponse); } else { const nameQuery = await fastify.db.getName({ name, @@ -317,7 +316,7 @@ export const BnsNameRoutes: FastifyPluginAsync< throw { error: `cannot find name ${name}` }; } const { result } = nameQuery; - nameInfoResponse = { + const nameInfoResponse = { address: result.address, blockchain: bnsBlockchain, expire_block: result.expire_block, @@ -328,12 +327,8 @@ export const BnsNameRoutes: FastifyPluginAsync< zonefile: result.zonefile, zonefile_hash: result.zonefile_hash, }; + await reply.send(nameInfoResponse); } - - return nameInfoResponse; - }) - .then(async response => { - await reply.send(response); }) .catch(async error => { if (error instanceof NameRedirectError) { diff --git a/src/api/routes/bns/namespaces.ts b/src/api/routes/bns/namespaces.ts index 254521b70..f0f261d2d 100644 --- a/src/api/routes/bns/namespaces.ts +++ b/src/api/routes/bns/namespaces.ts @@ -1,6 +1,5 @@ import { parsePagingQueryInput } from '../../../api/pagination'; import { BnsErrors } from '../../../event-stream/bns/bns-constants'; -import { BnsGetAllNamespacesResponse } from '@stacks/stacks-blockchain-api-types'; import { handleChainTipCache } from '../../../api/controllers/cache-controller'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; @@ -37,7 +36,7 @@ export const BnsNamespaceRoutes: FastifyPluginAsync< async (req, reply) => { const includeUnanchored = req.query.unanchored; const { results } = await fastify.db.getNamespaceList({ includeUnanchored }); - const response: BnsGetAllNamespacesResponse = { + const response = { namespaces: results, }; await reply.send(response); diff --git a/src/api/routes/fee-rate.ts b/src/api/routes/fee-rate.ts index f87402312..20cead8bf 100644 --- a/src/api/routes/fee-rate.ts +++ b/src/api/routes/fee-rate.ts @@ -1,4 +1,3 @@ -import { FeeRate } from '@stacks/stacks-blockchain-api-types'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { Server } from 'node:http'; @@ -42,7 +41,7 @@ export const FeeRateRoutes: FastifyPluginAsync< }, async (_req, reply) => { //validate and use req.body.transaction when we want to use it - const response: FeeRate = { + const response = { fee_rate: FEE_RATE, }; await reply.send(response); diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index 802a82298..1f70506b2 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -10,7 +10,6 @@ import { isValidC32Address, isValidPrincipal, parseEventTypeStrings } from '../. import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; import { validateRequestHexInput, validatePrincipal } from '../query-helpers'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; -import { GetRawTransactionResult } from '@stacks/stacks-blockchain-api-types'; import { handleChainTipCache, handleMempoolCache, @@ -583,7 +582,7 @@ export const TxRoutes: FastifyPluginAsync< const rawTxQuery = await fastify.db.getRawTx(tx_id); if (rawTxQuery.found) { - const response: GetRawTransactionResult = { + const response = { raw_tx: rawTxQuery.result.raw_tx, }; await reply.send(response); diff --git a/src/api/routes/v2/helpers.ts b/src/api/routes/v2/helpers.ts index 8b11a886c..66cf20691 100644 --- a/src/api/routes/v2/helpers.ts +++ b/src/api/routes/v2/helpers.ts @@ -1,12 +1,3 @@ -import { - AddressTransactionEvent, - BurnBlock, - NakamotoBlock, - PoxCycle, - PoxSigner, - PoxStacker, - SmartContractsStatusResponse, -} from 'docs/generated'; import { DbAddressTransactionEvent, DbBlock, @@ -28,7 +19,10 @@ import { import { decodeClarityValueToRepr } from 'stacks-encoding-native-js'; import { TransactionVersion, getAddressFromPublicKey } from '@stacks/transactions'; import { SmartContractStatusList } from '../../schemas/entities/smart-contracts'; -import { AddressTransaction, AddressTransactionWithTransfers } from '../../schemas/entities/addresses'; +import { AddressTransaction, AddressTransactionEvent } from '../../schemas/entities/addresses'; +import { NakamotoBlock } from '../../schemas/entities/block'; +import { BurnBlock } from '../../schemas/entities/burn-blocks'; +import { PoxCycle, PoxSigner, PoxStacker } from '../../schemas/entities/pox'; export function parseDbNakamotoBlock(block: DbBlock): NakamotoBlock { const apiBlock: NakamotoBlock = { diff --git a/src/api/serializers/post-conditions.ts b/src/api/serializers/post-conditions.ts index 648f27a10..4bf66aa96 100644 --- a/src/api/serializers/post-conditions.ts +++ b/src/api/serializers/post-conditions.ts @@ -1,9 +1,3 @@ -import { - PostCondition, - PostConditionPrincipal as PostConditionPrincipalDocsType, - PostConditionMode, -} from '@stacks/stacks-blockchain-api-types'; - import { TxPostCondition, PostConditionAssetInfoID, @@ -17,9 +11,7 @@ const assetPrincipalTypeMap = { [PostConditionPrincipalTypeID.Contract]: 'principal_contract', } as const; -function serializePostConditionPrincipal( - principal: PostConditionPrincipal -): PostConditionPrincipalDocsType { +function serializePostConditionPrincipal(principal: PostConditionPrincipal) { if (principal.type_id === PostConditionPrincipalTypeID.Standard) { return { type_id: assetPrincipalTypeMap[principal.type_id], @@ -44,7 +36,7 @@ const assetInfoTypeMap = { [PostConditionAssetInfoID.NonfungibleAsset]: 'non_fungible', } as const; -export function serializePostCondition(pc: TxPostCondition): PostCondition { +export function serializePostCondition(pc: TxPostCondition) { switch (pc.asset_info_id) { case PostConditionAssetInfoID.STX: return { @@ -83,7 +75,7 @@ export function serializePostCondition(pc: TxPostCondition): PostCondition { } } -export function serializePostConditionMode(byte: number): PostConditionMode { +export function serializePostConditionMode(byte: number) { switch (byte) { case 1: return 'allow'; diff --git a/src/core-rpc/client.ts b/src/core-rpc/client.ts index 422ea8385..70acaaffe 100644 --- a/src/core-rpc/client.ts +++ b/src/core-rpc/client.ts @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ import fetch, { RequestInit } from 'node-fetch'; import { parsePort } from '../helpers'; -import { CoreNodeFeeResponse } from '@stacks/stacks-blockchain-api-types'; import { ClarityValue, cvToHex } from '@stacks/transactions'; import { logger } from '../logger'; import { stopwatch, timeout } from '@hirosystems/api-toolkit'; @@ -292,11 +291,4 @@ export class StacksCoreRpcClient { }); return result; } - - async getEstimatedTransferFee(): Promise { - const result = await this.fetchJson(`v2/fees/transfer`, { - method: 'GET', - }); - return result; - } } diff --git a/src/datastore/common.ts b/src/datastore/common.ts index 8072a9d35..3b3b78ee6 100644 --- a/src/datastore/common.ts +++ b/src/datastore/common.ts @@ -1,5 +1,4 @@ -import { ClarityAbi } from '@stacks/transactions'; -import { Block } from '@stacks/stacks-blockchain-api-types'; +import { Block } from '../api/schemas/entities/block'; import { SyntheticPoxEventName } from '../pox-helpers'; import { PgBytea, PgJsonb, PgNumeric } from '@hirosystems/api-toolkit'; diff --git a/src/datastore/helpers.ts b/src/datastore/helpers.ts index 1a8566aef..0780a3b0b 100644 --- a/src/datastore/helpers.ts +++ b/src/datastore/helpers.ts @@ -62,7 +62,6 @@ import { import { getTxSenderAddress } from '../event-stream/reader'; import postgres = require('postgres'); import * as prom from 'prom-client'; -import { NftEvent } from 'docs/generated'; import { getAssetEventTypeString } from '../api/controllers/db-controller'; import { PgStoreEventEmitter } from './pg-store-event-emitter'; import { SyntheticPoxEventName } from '../pox-helpers'; @@ -990,8 +989,8 @@ export function parseTxsWithAssetTransfers( return txs; } -export function parseNftEvent(dbEvent: DbNftEvent): NftEvent { - const event: NftEvent = { +export function parseNftEvent(dbEvent: DbNftEvent) { + const event = { asset_identifier: dbEvent.asset_identifier, asset_event_type: getAssetEventTypeString(dbEvent.asset_event_type_id), value: { diff --git a/src/datastore/pg-store.ts b/src/datastore/pg-store.ts index 1bcfc77b8..9cc7b62c0 100644 --- a/src/datastore/pg-store.ts +++ b/src/datastore/pg-store.ts @@ -1,10 +1,5 @@ -import { - AddressTokenOfferingLocked, - AddressUnlockSchedule, - TransactionType, -} from '@stacks/stacks-blockchain-api-types'; import { ClarityAbi } from '@stacks/transactions'; -import { getTxTypeId, getTxTypeString } from '../api/controllers/db-controller'; +import { getTxTypeId, getTxTypeString, TransactionType } from '../api/controllers/db-controller'; import { unwrapNotNullish, FoundOrNot, @@ -4058,21 +4053,20 @@ export class PgStore extends BasePgStore { if (queryResult.length > 0) { let totalLocked = 0n; let totalUnlocked = 0n; - const unlockSchedules: AddressUnlockSchedule[] = []; - queryResult.forEach(lockedInfo => { - const unlockSchedule: AddressUnlockSchedule = { + const unlockSchedules = queryResult.map(lockedInfo => { + const unlockSchedule = { amount: lockedInfo.value.toString(), block_height: lockedInfo.block, }; - unlockSchedules.push(unlockSchedule); if (lockedInfo.block > blockHeight) { totalLocked += BigInt(lockedInfo.value); } else { totalUnlocked += BigInt(lockedInfo.value); } + return unlockSchedule; }); - const tokenOfferingLocked: AddressTokenOfferingLocked = { + const tokenOfferingLocked = { total_locked: totalLocked.toString(), total_unlocked: totalUnlocked.toString(), unlock_schedule: unlockSchedules, diff --git a/src/tests-rpc/core-rpc-tests.ts b/src/tests-rpc/core-rpc-tests.ts index cf4c155df..1423d6653 100644 --- a/src/tests-rpc/core-rpc-tests.ts +++ b/src/tests-rpc/core-rpc-tests.ts @@ -27,9 +27,4 @@ describe('core RPC tests', () => { const balance = await client.getAccountBalance('STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6'); expect(balance).toBe(10000000000000000n); }); - - test('get estimated transfer fee', async () => { - const fee = await client.getEstimatedTransferFee(); - expect(fee).toBeTruthy(); - }); }); From 5cef91c77e30000cd4a0b8460b898f96e3ca66e1 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 7 Aug 2024 11:35:51 +0200 Subject: [PATCH 30/56] docs: missing openapi tag on burn-blocks route --- src/api/routes/v2/burn-blocks.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/api/routes/v2/burn-blocks.ts b/src/api/routes/v2/burn-blocks.ts index 33f64cda7..6087206a3 100644 --- a/src/api/routes/v2/burn-blocks.ts +++ b/src/api/routes/v2/burn-blocks.ts @@ -77,10 +77,10 @@ export const BurnBlockRoutesV2: FastifyPluginAsync< { preHandler: handleChainTipCache, schema: { - operationId: '', - summary: '', - description: ``, - tags: [''], + operationId: 'get_blocks_by_burn_block', + summary: 'Get blocks by burn block', + description: `Retrieves a list of blocks confirmed by a specific burn block`, + tags: ['Burn Blocks'], params: BurnBlockParamsSchema, querystring: Type.Object({ limit: LimitParam(ResourceType.BurnBlock), From 9e9a5b2979a3868306cc088d9d86e7414b024d9e Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 7 Aug 2024 12:07:23 +0200 Subject: [PATCH 31/56] docs: update docs and client generation scripts --- .github/workflows/ci.yml | 12 - .vscode/launch.json | 1 - .vscode/tasks.json | 8 - client/package-lock.json | 598 +- client/package.json | 6 +- docs/gulpfile.js | 18 +- docs/package-lock.json | 12986 ++++++++--------------------- docs/package.json | 36 +- docs/scripts/generate-types.ts | 70 - docs/scripts/validate-schemas.ts | 47 - package.json | 2 +- src/openapi-generator.ts | 6 +- 12 files changed, 3710 insertions(+), 10080 deletions(-) delete mode 100644 docs/scripts/generate-types.ts delete mode 100755 docs/scripts/validate-schemas.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39d80ecf6..4b2fdf7da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -90,18 +90,6 @@ jobs: - name: Validate generated types run: tsc index.d.ts - - name: Lint JSON - run: npm run lint:json - - - name: Lint YAML - run: npm run lint:yaml - - - name: Lint OpenAPI - run: npm run lint:openapi - - - name: Validate schemas - run: npm run validate:schemas - test: runs-on: ubuntu-latest steps: diff --git a/.vscode/launch.json b/.vscode/launch.json index a7de2bcdc..31cefea2c 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -22,7 +22,6 @@ "args": ["${workspaceFolder}/src/index.ts"], "outputCapture": "std", "internalConsoleOptions": "openOnSessionStart", - "preLaunchTask": "generate:schemas", "env": { "NODE_ENV": "development", "TS_NODE_SKIP_IGNORE": "true" diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 62a73ce93..24b522696 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -3,14 +3,6 @@ // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ - { - "label": "generate:schemas", - "type": "npm", - "script": "generate:schemas", - "presentation": { - "reveal": "silent" - } - }, { "label": "stacks-node:deploy-dev", "type": "shell", diff --git a/client/package-lock.json b/client/package-lock.json index d5c17d8d9..a9d4373b8 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@apidevtools/swagger-cli": "4.0.4", - "@openapitools/openapi-generator-cli": "2.4.21", + "@openapitools/openapi-generator-cli": "2.13.4", "@stacks/eslint-config": "2.0.0", "@stacks/prettier-config": "0.0.10", "@types/node": "20.10.6", @@ -2208,32 +2208,47 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", "dev": true }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nestjs/axios": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.2.tgz", + "integrity": "sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ==", + "dev": true, + "peerDependencies": { + "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", + "axios": "^1.3.1", + "rxjs": "^6.0.0 || ^7.0.0" + } + }, "node_modules/@nestjs/common": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.2.4.tgz", - "integrity": "sha512-zb6Y//Rd7tRsMsY2qDvX7qk/msr6sBid7V9YNvdePzGNYfMOvtwgNoqtHgbq2F6V4kCtMO7slmmM4/zptSghiQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz", + "integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", "dev": true, "dependencies": { - "axios": "0.24.0", "iterare": "1.2.1", - "tslib": "2.3.1", - "uuid": "8.3.2" + "tslib": "2.6.2", + "uid": "2.0.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/nest" }, "peerDependencies": { - "cache-manager": "*", "class-transformer": "*", "class-validator": "*", "reflect-metadata": "^0.1.12", "rxjs": "^7.1.0" }, "peerDependenciesMeta": { - "cache-manager": { - "optional": true - }, "class-transformer": { "optional": true }, @@ -2242,36 +2257,29 @@ } } }, - "node_modules/@nestjs/common/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, "node_modules/@nestjs/core": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.2.4.tgz", - "integrity": "sha512-CWyS5Rj5tUxwtTGKkGei+ii6CvkGNhuo5hbKGBkCK3McfAMwpCq2pYDjSEFAqn6R2ylL4H3U5H9WU6OWJD1cVw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz", + "integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", "dev": true, "hasInstallScript": true, "dependencies": { "@nuxtjs/opencollective": "0.3.2", "fast-safe-stringify": "2.1.1", "iterare": "1.2.1", - "object-hash": "2.2.0", "path-to-regexp": "3.2.0", - "tslib": "2.3.1", - "uuid": "8.3.2" + "tslib": "2.6.2", + "uid": "2.0.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/nest" }, "peerDependencies": { - "@nestjs/common": "^8.0.0", - "@nestjs/microservices": "^8.0.0", - "@nestjs/platform-express": "^8.0.0", - "@nestjs/websockets": "^8.0.0", + "@nestjs/common": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/websockets": "^10.0.0", "reflect-metadata": "^0.1.12", "rxjs": "^7.1.0" }, @@ -2287,12 +2295,6 @@ } } }, - "node_modules/@nestjs/core/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2347,27 +2349,30 @@ } }, "node_modules/@openapitools/openapi-generator-cli": { - "version": "2.4.21", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.4.21.tgz", - "integrity": "sha512-YMCenkvusNFYGMCHnl4pAhxMjdn/w5R0bz1ayI6Pi+ASgnRF2IzPdVdOaPc9Q2fGJ52c2c4B2YdaftIzwecMTw==", + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.13.4.tgz", + "integrity": "sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nestjs/common": "8.2.4", - "@nestjs/core": "8.2.4", + "@nestjs/axios": "3.0.2", + "@nestjs/common": "10.3.0", + "@nestjs/core": "10.3.0", "@nuxtjs/opencollective": "0.3.2", + "axios": "1.6.8", "chalk": "4.1.2", "commander": "8.3.0", - "compare-versions": "3.6.0", + "compare-versions": "4.1.4", "concurrently": "6.5.1", "console.table": "0.10.0", - "fs-extra": "10.0.0", - "glob": "7.1.6", - "inquirer": "8.2.0", + "fs-extra": "10.1.0", + "glob": "7.2.3", + "https-proxy-agent": "7.0.4", + "inquirer": "8.2.6", "lodash": "4.17.21", "reflect-metadata": "0.1.13", - "rxjs": "7.4.0", - "tslib": "2.0.3" + "rxjs": "7.8.1", + "tslib": "2.6.2" }, "bin": { "openapi-generator-cli": "main.js" @@ -3017,6 +3022,18 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3237,6 +3254,12 @@ "lodash": "^4.17.14" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/asyncro": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/asyncro/-/asyncro-3.0.0.tgz", @@ -3283,12 +3306,14 @@ } }, "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, "dependencies": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/babel-plugin-dynamic-import-node": { @@ -3633,9 +3658,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -3706,6 +3731,18 @@ "node": ">=0.1.90" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -3722,9 +3759,9 @@ "dev": true }, "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz", + "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==", "dev": true }, "node_modules/concat-map": { @@ -4221,6 +4258,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -5026,7 +5072,7 @@ "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -5206,9 +5252,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -5234,6 +5280,20 @@ "is-callable": "^1.1.3" } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fraction.js": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", @@ -5248,9 +5308,9 @@ } }, "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -5388,15 +5448,16 @@ } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -5690,6 +5751,19 @@ "node": ">=12" } }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -5824,9 +5898,9 @@ "dev": true }, "node_modules/inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", @@ -5839,13 +5913,14 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.0.0" } }, "node_modules/internal-slot": { @@ -6693,6 +6768,27 @@ "node": ">=4" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -6855,15 +6951,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -7029,7 +7116,7 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7867,6 +7954,12 @@ "node": ">=0.12" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -7921,9 +8014,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -8431,20 +8524,14 @@ } }, "node_modules/rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - }, "node_modules/sade": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", @@ -8662,9 +8749,9 @@ } }, "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/slash": { @@ -8982,12 +9069,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/synckit/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -9030,7 +9111,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/timsort": { @@ -9176,9 +9257,9 @@ } }, "node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/type-check": { @@ -9328,6 +9409,18 @@ "node": ">=14.17" } }, + "node_modules/uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "dev": true, + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -9401,9 +9494,9 @@ } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -9430,15 +9523,6 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -11348,47 +11432,42 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", "dev": true }, + "@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "dev": true + }, + "@nestjs/axios": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.2.tgz", + "integrity": "sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ==", + "dev": true, + "requires": {} + }, "@nestjs/common": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.2.4.tgz", - "integrity": "sha512-zb6Y//Rd7tRsMsY2qDvX7qk/msr6sBid7V9YNvdePzGNYfMOvtwgNoqtHgbq2F6V4kCtMO7slmmM4/zptSghiQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz", + "integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", "dev": true, "requires": { - "axios": "0.24.0", "iterare": "1.2.1", - "tslib": "2.3.1", - "uuid": "8.3.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } + "tslib": "2.6.2", + "uid": "2.0.2" } }, "@nestjs/core": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.2.4.tgz", - "integrity": "sha512-CWyS5Rj5tUxwtTGKkGei+ii6CvkGNhuo5hbKGBkCK3McfAMwpCq2pYDjSEFAqn6R2ylL4H3U5H9WU6OWJD1cVw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz", + "integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", "dev": true, "requires": { "@nuxtjs/opencollective": "0.3.2", "fast-safe-stringify": "2.1.1", "iterare": "1.2.1", - "object-hash": "2.2.0", "path-to-regexp": "3.2.0", - "tslib": "2.3.1", - "uuid": "8.3.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } + "tslib": "2.6.2", + "uid": "2.0.2" } }, "@nodelib/fs.scandir": { @@ -11429,26 +11508,29 @@ } }, "@openapitools/openapi-generator-cli": { - "version": "2.4.21", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.4.21.tgz", - "integrity": "sha512-YMCenkvusNFYGMCHnl4pAhxMjdn/w5R0bz1ayI6Pi+ASgnRF2IzPdVdOaPc9Q2fGJ52c2c4B2YdaftIzwecMTw==", + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.13.4.tgz", + "integrity": "sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww==", "dev": true, "requires": { - "@nestjs/common": "8.2.4", - "@nestjs/core": "8.2.4", + "@nestjs/axios": "3.0.2", + "@nestjs/common": "10.3.0", + "@nestjs/core": "10.3.0", "@nuxtjs/opencollective": "0.3.2", + "axios": "1.6.8", "chalk": "4.1.2", "commander": "8.3.0", - "compare-versions": "3.6.0", + "compare-versions": "4.1.4", "concurrently": "6.5.1", "console.table": "0.10.0", - "fs-extra": "10.0.0", - "glob": "7.1.6", - "inquirer": "8.2.0", + "fs-extra": "10.1.0", + "glob": "7.2.3", + "https-proxy-agent": "7.0.4", + "inquirer": "8.2.6", "lodash": "4.17.21", "reflect-metadata": "0.1.13", - "rxjs": "7.4.0", - "tslib": "2.0.3" + "rxjs": "7.8.1", + "tslib": "2.6.2" }, "dependencies": { "cliui": { @@ -11901,6 +11983,15 @@ "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true }, + "agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "requires": { + "debug": "^4.3.4" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -12062,6 +12153,12 @@ "lodash": "^4.17.14" } }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "asyncro": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/asyncro/-/asyncro-3.0.0.tgz", @@ -12089,12 +12186,14 @@ "dev": true }, "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, "requires": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "babel-plugin-dynamic-import-node": { @@ -12344,9 +12443,9 @@ } }, "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true }, "cli-width": { @@ -12399,6 +12498,15 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -12412,9 +12520,9 @@ "dev": true }, "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz", + "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==", "dev": true }, "concat-map": { @@ -12782,6 +12890,12 @@ "object-keys": "^1.1.1" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -13387,7 +13501,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true } } @@ -13519,9 +13633,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true }, "for-each": { @@ -13533,6 +13647,17 @@ "is-callable": "^1.1.3" } }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "fraction.js": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", @@ -13540,9 +13665,9 @@ "dev": true }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "requires": { "graceful-fs": "^4.2.0", @@ -13640,15 +13765,15 @@ } }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -13859,6 +13984,16 @@ "url-join": "^4.0.1" } }, + "https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -13952,9 +14087,9 @@ "dev": true }, "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -13967,10 +14102,11 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" } }, "internal-slot": { @@ -14608,6 +14744,21 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -14720,12 +14871,6 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true - }, "object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -14849,7 +14994,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, "p-finally": { @@ -15390,6 +15535,12 @@ "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", "dev": true }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -15421,9 +15572,9 @@ } }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -15811,20 +15962,12 @@ } }, "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "requires": { - "tslib": "~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } + "tslib": "^2.1.0" } }, "sade": { @@ -15996,9 +16139,9 @@ } }, "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "slash": { @@ -16231,14 +16374,6 @@ "requires": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - } } }, "tapable": { @@ -16276,7 +16411,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "timsort": { @@ -16382,9 +16517,9 @@ } }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "type-check": { @@ -16487,6 +16622,15 @@ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true }, + "uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "dev": true, + "requires": { + "@lukeed/csprng": "^1.0.0" + } + }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -16542,9 +16686,9 @@ } }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true }, "uri-js": { @@ -16568,12 +16712,6 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, "v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", diff --git a/client/package.json b/client/package.json index 5a18b3e3c..c0bb38be7 100644 --- a/client/package.json +++ b/client/package.json @@ -28,8 +28,8 @@ "lint:prettier": "prettier --check ./src/**/*.ts", "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx -f unix --fix && prettier --write --check src/**/*.ts", "open": "http-server -o 9222 -o index.html", - "prep-openapi": "rimraf ./.tmp && rimraf ./src/generated && swagger-cli bundle --dereference -o ./.tmp/openapi-temp.json ../docs/openapi.yaml && shx sed -i '^.*\\$schema.*$' '' ./.tmp/openapi-temp.json > ./.tmp/openapi.json", - "generate-openapi": "npm run prep-openapi && openapi-generator-cli generate --skip-validate-spec -g typescript-fetch --additional-properties=withInterfaces=true,typescriptThreePlus=true,supportsES6=true,legacyDiscriminatorBehavior=false,enumPropertyNaming=original,modelPropertyNaming=original -i ./.tmp/openapi.json -o ./src/generated > ./.tmp/gen.log", + "prep-openapi": "npm run build --prefix ../docs", + "generate-openapi": "npm run prep-openapi && rimraf ./src/generated && openapi-generator-cli generate --skip-validate-spec -g typescript-fetch --additional-properties=withInterfaces=true,typescriptThreePlus=true,supportsES6=true,legacyDiscriminatorBehavior=false,enumPropertyNaming=original,modelPropertyNaming=original -i ../docs/.tmp/openapi.json -o ./src/generated", "openapi-generator-version": "openapi-generator-cli version-manager list", "generate:docs": "npm run generate-openapi && typedoc src/**/*.ts" }, @@ -49,7 +49,7 @@ }, "devDependencies": { "@apidevtools/swagger-cli": "4.0.4", - "@openapitools/openapi-generator-cli": "2.4.21", + "@openapitools/openapi-generator-cli": "2.13.4", "@stacks/eslint-config": "2.0.0", "@stacks/prettier-config": "0.0.10", "@types/node": "20.10.6", diff --git a/docs/gulpfile.js b/docs/gulpfile.js index 215d580a9..521934a84 100644 --- a/docs/gulpfile.js +++ b/docs/gulpfile.js @@ -1,24 +1,10 @@ -const { src, dest, parallel, series } = require('gulp'); +const { src, series } = require('gulp'); const path = require('path'); -const jsonschemaDeref = require('gulp-jsonschema-deref'); const ghPages = require('gulp-gh-pages'); const del = require('del'); -const schemaFiles = ['api/**/*.schema.json', 'entities/**/*.schema.json']; const buildFolder = '.tmp'; -function flattenSchemas() { - return src(schemaFiles, {base: '.'}) - .pipe(jsonschemaDeref()) - .pipe(dest(buildFolder)); -} - -function copyFiles() { - return src(['api/**/*.example.json', 'entities/**/*.example.json'], {base: '.'}).pipe( - dest(buildFolder) - ); -} - function deployToGithubPages() { return src([path.join(buildFolder, '**/*')]).pipe(ghPages()); } @@ -27,6 +13,4 @@ function clean() { return del('.publish'); } -exports.default = parallel(flattenSchemas, copyFiles); -exports.flattenSchemas = flattenSchemas; exports.deployDocs = series(deployToGithubPages, clean); diff --git a/docs/package-lock.json b/docs/package-lock.json index 80b05115d..6a2f7c0d7 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -9,361 +9,47 @@ "version": "0.1.0", "license": "ISC", "devDependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.7", - "@apidevtools/swagger-cli": "4.0.4", - "@types/json-schema-merge-allof": "0.6.0", + "@redocly/cli": "1.19.0", "@types/node": "^18.13.0", - "ajv": "6.12.6", - "any-json": "^3.1.0", - "chalk": "4.1.1", "del": "5.1.0", - "glob": "7.1.6", "gulp": "4.0.2", "gulp-gh-pages": "0.6.0-6", - "gulp-jsonschema-deref": "0.0.3", - "json-schema": "0.2.5", - "json-schema-merge-allof": "0.7.0", - "json-schema-to-typescript": "10.1.4", - "jsonlint-cli": "1.0.1", "npm-run-all": "4.1.5", "openapi-to-postmanv2": "2.13.0", - "redoc-cli": "0.13.16", - "shx": "0.3.3", - "speccy": "0.11.0", "ts-node": "^10.8.2", - "typescript": "^4.7.4", - "yaml-lint": "1.2.4" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz", - "integrity": "sha512-QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==", - "dev": true, - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "dev": true, - "engines": { - "node": ">=10" + "typescript": "^4.7.4" } }, - "node_modules/@apidevtools/swagger-cli": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, "dependencies": { - "@apidevtools/swagger-parser": "^10.0.1", - "chalk": "^4.1.0", - "js-yaml": "^3.14.0", - "yargs": "^15.4.1" - }, - "bin": { - "swagger-cli": "bin/swagger-cli.js" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", - "dev": true, - "dependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.6", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.6.3", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.1" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@apidevtools/swagger-parser/node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", - "dev": true, - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" + "node": ">=6.9.0" } }, - "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "node_modules/@cfaester/enzyme-adapter-react-18": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cfaester/enzyme-adapter-react-18/-/enzyme-adapter-react-18-0.8.0.tgz", + "integrity": "sha512-3Z3ThTUouHwz8oIyhTYQljEMNRFtlVyc3VOOHCbxs47U6cnXs8K9ygi/c1tv49s7MBlTXeIcuN+Ttd9aPtILFQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "enzyme-shallow-equal": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has": "^1.0.4", + "react-is": "^18.2.0", + "react-shallow-renderer": "^16.15.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@apidevtools/swagger-parser/node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "dev": true, "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@apidevtools/swagger-parser/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/@babel/generator": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", - "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.14.1", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true - }, - "node_modules/@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", - "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==", - "dev": true, - "peer": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", - "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" + "enzyme": "^3.11.0", + "react": ">=18", + "react-dom": ">=18" } }, - "node_modules/@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/traverse": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", - "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.0", - "@babel/types": "^7.14.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "node_modules/@babel/types": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", - "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@cloudflare/json-schema-walker": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@cloudflare/json-schema-walker/-/json-schema-walker-0.1.1.tgz", - "integrity": "sha512-P3n0hEgk1m6uKWgL4Yb1owzXVG4pM70G4kRnDQxZXiVvfCRtaqiHu+ZRiRPzmwGBiLTO1LWc2yR1M8oz0YkXww==", - "dev": true - }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -377,55 +63,45 @@ } }, "node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", "dev": true, - "peer": true, "dependencies": { - "@emotion/memoize": "0.7.4" + "@emotion/memoize": "^0.8.1" } }, "node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true, - "peer": true - }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", - "dev": true, - "peer": true + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "dev": true }, "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true, - "peer": true + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "dev": true }, "node_modules/@exodus/schemasafe": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.3.tgz", - "integrity": "sha512-GoXw0U2Qaa33m3eUcxuHnHpNvHjNlLo0gtV091XBpaRINaB4X6FGCG5XKxSFNFiPpugUDqNruHzaqpTdDm4AOg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", + "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", "dev": true }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -438,19 +114,13 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, "node_modules/@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { @@ -458,31 +128,111 @@ } }, "node_modules/@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { "node": ">= 8" } }, + "node_modules/@redocly/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@redocly/cli": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-1.19.0.tgz", + "integrity": "sha512-ev6J0eD+quprvW9PVCl9JmRFZbj6cuK+mnYPAjcrPvesy2RF752fflcpgQjGnyFaGb1Cj+DiwDi3dYr3EAp04A==", + "dev": true, + "dependencies": { + "@redocly/openapi-core": "1.19.0", + "abort-controller": "^3.0.0", + "chokidar": "^3.5.1", + "colorette": "^1.2.0", + "core-js": "^3.32.1", + "form-data": "^4.0.0", + "get-port-please": "^3.0.1", + "glob": "^7.1.6", + "handlebars": "^4.7.6", + "mobx": "^6.0.4", + "node-fetch": "^2.6.1", + "pluralize": "^8.0.0", + "react": "^17.0.0 || ^18.2.0", + "react-dom": "^17.0.0 || ^18.2.0", + "redoc": "~2.1.5", + "semver": "^7.5.2", + "simple-websocket": "^9.0.0", + "styled-components": "^6.0.7", + "yargs": "17.0.1" + }, + "bin": { + "openapi": "bin/cli.js", + "redocly": "bin/cli.js" + }, + "engines": { + "node": ">=14.19.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@redocly/config": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.7.0.tgz", + "integrity": "sha512-6GKxTo/9df0654Mtivvr4lQnMOp+pRj9neVywmI5+BwfZLTtkJnj2qB3D6d8FHTr4apsNOf6zTa5FojX0Evh4g==", + "dev": true + }, + "node_modules/@redocly/openapi-core": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.19.0.tgz", + "integrity": "sha512-ezK6qr80sXvjDgHNrk/zmRs9vwpIAeHa0T/qmo96S+ib4ThQ5a8f3qjwEqxMeVxkxCTbkaY9sYSJKOxv4ejg5w==", + "dev": true, + "dependencies": { + "@redocly/ajv": "^8.11.0", + "@redocly/config": "^0.7.0", + "colorette": "^1.2.0", + "https-proxy-agent": "^7.0.4", + "js-levenshtein": "^1.1.6", + "js-yaml": "^4.1.0", + "lodash.isequal": "^4.5.0", + "minimatch": "^5.0.1", + "node-fetch": "^2.6.1", + "pluralize": "^8.0.0", + "yaml-ast-parser": "0.0.43" + }, + "engines": { + "node": ">=14.19.0", + "npm": ">=7.0.0" + } + }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true }, "node_modules/@tsconfig/node12": { @@ -504,9 +254,9 @@ "dev": true }, "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "dependencies": { "@types/minimatch": "*", @@ -514,64 +264,48 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, - "node_modules/@types/json-schema-merge-allof": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz", - "integrity": "sha512-v6iCEk4Sxy1twlCTtrRxMqSHX0vuLJ7Ql4hiIUZRMOswxtlUeybIfYaZIj7pX747RBczG2YtBm4Fn6sqKzeY2Q==", + "node_modules/@types/node": { + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dev": true, "dependencies": { - "@types/json-schema": "*" + "undici-types": "~5.26.4" } }, - "node_modules/@types/lodash": { - "version": "4.14.169", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.169.tgz", - "integrity": "sha512-DvmZHoHTFJ8zhVYwCLWbQ7uAbYQEk52Ev2/ZiQ7Y7gQGeV9pjBqjnQpECMHfKS1rCYAhMI7LHVxwyZLZinJgdw==", + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", "dev": true }, - "node_modules/@types/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.19.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.5.tgz", - "integrity": "sha512-22MG6T02Hos2JWfa1o5jsIByn+bc5iOt1IS4xyg6OG68Bu+wMonVZzdrgCw693++rpLE9RUT/Bx15BeDzO0j+g==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/prettier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", - "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "event-target-shim": "^5.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=6.5" } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -581,28 +315,27 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } }, - "node_modules/adler-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", - "integrity": "sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==", + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "adler32": "bin/adler32.njs" + "debug": "^4.3.4" }, "engines": { - "node": ">=0.8" + "node": ">= 14" } }, "node_modules/aggregate-error": { @@ -634,6 +367,12 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/ansi-colors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", @@ -649,7 +388,7 @@ "node_modules/ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", "dev": true, "dependencies": { "ansi-wrap": "0.1.0" @@ -659,258 +398,52 @@ } }, "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/ansi-wrap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/any-json": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/any-json/-/any-json-3.1.0.tgz", - "integrity": "sha512-p4sFflxj6pQzn7T1omWd63GI7bNRmoDgpqxQWJIWNEOWp2+Z8PYtUY/DTGu7QA3MnSBpf7E+cDT3ZNQmeg+WNg==", - "dev": true, - "dependencies": { - "cson": "^4.1.0", - "dashdash": "^1.14.1", - "fast-csv": "^2.4.0", - "format-unicorn": "^1.1.0", - "hjson": "^2.4.1", - "ini": "^1.3.4", - "js-yaml": "^3.7.0", - "json5": "^0.5.1", - "strip-json-comments": "^2.0.1", - "toml-j0.4": "^1.0.10", - "tomlify-j0.4": "^2.1.1", - "typescript": "^2.4.2", - "util.promisify": "^1.0.0", - "xlsjs": "^0.7.5", - "xlsx": "^0.11.3", - "xml2js": "0.4.17" - }, - "bin": { - "any-json": "out/lib/run.js" - } - }, - "node_modules/any-json/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/any-json/node_modules/typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true - }, "node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/anymatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, "node_modules/append-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", "dev": true, "dependencies": { "buffer-equal": "^1.0.0" @@ -922,7 +455,7 @@ "node_modules/archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, "node_modules/arg": { @@ -932,28 +465,15 @@ "dev": true }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/arguments-extended": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/arguments-extended/-/arguments-extended-0.0.3.tgz", - "integrity": "sha512-MNYdPKgCiywbgHAmNsYr1tSNLtfbSdwE1akZV+33hU9A8RG0lO5HAK9oMnw7y7bjYUhc04dJpcIBMUaPPYYtXg==", - "dev": true, - "dependencies": { - "extended": "~0.0.3", - "is-extended": "~0.0.8" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -962,7 +482,7 @@ "node_modules/arr-filter": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", "dev": true, "dependencies": { "make-iterator": "^1.0.0" @@ -983,7 +503,7 @@ "node_modules/arr-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", "dev": true, "dependencies": { "make-iterator": "^1.0.0" @@ -995,73 +515,41 @@ "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-extended": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/array-extended/-/array-extended-0.0.11.tgz", - "integrity": "sha512-Fe4Ti2YgM1onQgrcCD8dUhFuZgHQxzqylSl1C5IDJVVVqY5D07h8RghIXL9sZ6COZ0e+oTL5IusTv5eXABJ9Kw==", - "dev": true, - "dependencies": { - "arguments-extended": "~0.0.3", - "extended": "~0.0.3", - "is-extended": "~0.0.3" - } - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, "node_modules/array-initial": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", "dev": true, "dependencies": { "array-slice": "^1.0.0", @@ -1133,34 +621,27 @@ "node": ">=8" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", - "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", + "node_modules/array.prototype.filter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz", + "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", "dev": true, + "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", "es-array-method-boxes-properly": "^1.0.0", + "es-object-atoms": "^1.0.0", "is-string": "^1.0.7" }, "engines": { @@ -1170,19 +651,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "peer": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -1191,37 +670,41 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, "engines": { - "node": ">=0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/async": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz", - "integrity": "sha1-bJ7csRztTw3S8tQNsNSaEJwIiqs=", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", + "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", "dev": true }, "node_modules/async-done": { @@ -1240,15 +723,21 @@ } }, "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] }, "node_modules/async-settle": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", "dev": true, "dependencies": { "async-done": "^1.2.2" @@ -1257,6 +746,12 @@ "node": ">= 0.10" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -1270,10 +765,13 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -1281,33 +779,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-plugin-styled-components": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz", - "integrity": "sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-module-imports": "^7.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true, - "peer": true - }, "node_modules/bach": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", "dev": true, "dependencies": { "arr-filter": "^1.1.1", @@ -1351,7 +826,7 @@ "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" @@ -1360,111 +835,16 @@ "node": ">=0.10.0" } }, - "node_modules/beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/better-ajv-errors": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz", - "integrity": "sha512-PYgt/sCzR4aGpyNy5+ViSQ77ognMnWq7745zM+/flYO4/Yisdtp9wDQW2IKCyVYPUxQt3E/b5GBSwfhd1LPdlg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/runtime": "^7.0.0", - "chalk": "^2.4.1", - "core-js": "^3.2.1", - "json-to-ast": "^2.0.3", - "jsonpointer": "^4.0.1", - "leven": "^3.1.0" - }, - "peerDependencies": { - "ajv": "4.11.8 - 6" - } - }, - "node_modules/better-ajv-errors/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/better-ajv-errors/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/better-ajv-errors/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/better-ajv-errors/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/better-ajv-errors/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/better-ajv-errors/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bindings": { @@ -1477,145 +857,50 @@ "file-uri-to-path": "1.0.0" } }, - "node_modules/bindings/node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/body-parser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/body-parser/node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/body-parser/node_modules/toidentifier": { + "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true, - "engines": { - "node": ">=0.6" - } + "peer": true }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, "node_modules/buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/cache-base": { @@ -1639,107 +924,60 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", "dev": true }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=", - "dev": true, - "peer": true - }, - "node_modules/caw": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz", - "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=", - "dev": true, - "dependencies": { - "get-proxy": "^1.0.1", - "is-obj": "^1.0.0", - "object-assign": "^3.0.0", - "tunnel-agent": "^0.4.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cfb": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/cfb/-/cfb-0.11.1.tgz", - "integrity": "sha512-1GEqpcO365hTRpP+GzHXNiUF5SB7qmY5aVYwrJm8ISx27HzHpaFlTQhnOCMNhqP0WPkHR0OGE9WDSqtksV4anw==", - "dev": true, - "dependencies": { - "commander": "" - }, - "bin": { - "cfb": "bin/cfb.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, "node_modules/charset": { @@ -1751,143 +989,68 @@ "node": ">=4.0.0" } }, - "node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/chokidar/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "dev": true, + "peer": true, "dependencies": { - "is-extendable": "^0.1.0" + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "node": ">= 6" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "node_modules/chokidar/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, + "peer": true, "dependencies": { - "is-extglob": "^2.1.0" + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/chokidar/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" + "node": ">= 8.10.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "funding": { + "url": "https://paulmillr.com/funding/" }, - "engines": { - "node": ">=0.10.0" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/class-utils": { @@ -1908,7 +1071,7 @@ "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -1917,72 +1080,23 @@ "node": ">=0.10.0" } }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", "dev": true }, "node_modules/clean-stack": { @@ -1994,68 +1108,21 @@ "node": ">=6" } }, - "node_modules/cli-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.0.tgz", - "integrity": "sha512-a0VZ8LeraW0jTuCkuAGMNufareGHhyZU9z8OGsW0gXd1hZGi1SRuNRXdbGkraBBKnhyUhyebFWnRbp+dIn0f0A==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.1.1", - "d": "^1.0.1", - "es5-ext": "^0.10.51", - "es6-iterator": "^2.0.3", - "memoizee": "^0.4.14", - "timers-ext": "^0.1.7" - } - }, - "node_modules/cli-fs": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cli-fs/-/cli-fs-1.0.4.tgz", - "integrity": "sha1-I2ve9FyY9tqh3ldHPnCBQdqmwBY=", - "dev": true - }, - "node_modules/cli-rc": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/cli-rc/-/cli-rc-1.0.12.tgz", - "integrity": "sha1-yJw/FYnLdTN4lyHudb7hLfpe95U=", - "dev": true, - "dependencies": { - "async": "~1.4.0", - "cli-fs": "~1.0.4", - "cli-util": "~1.1.27", - "ini": "~1.3.4" - } - }, - "node_modules/cli-regexp": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/cli-regexp/-/cli-regexp-0.1.2.tgz", - "integrity": "sha1-a82TsJ+y7RAl0woRVdWZeVSlNRI=", - "dev": true - }, - "node_modules/cli-util": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/cli-util/-/cli-util-1.1.27.tgz", - "integrity": "sha1-QtaeNqBAoyH8nPhRwVE8rcUJMFQ=", - "dev": true, - "dependencies": { - "cli-regexp": "~0.1.0" - } - }, "node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, "engines": { "node": ">=0.8" @@ -2064,16 +1131,16 @@ "node_modules/clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", "dev": true }, "node_modules/cloneable-readable": { @@ -2088,69 +1155,27 @@ } }, "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-error-fragment": { - "version": "0.0.230", - "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", - "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/codepage": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/coffee-script": { - "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", - "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", - "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", - "dev": true, - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/collection-map": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", "dev": true, "dependencies": { "arr-map": "^2.0.2", @@ -2164,7 +1189,7 @@ "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, "dependencies": { "map-visit": "^1.0.0", @@ -2175,21 +1200,18 @@ } }, "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/color-support": { @@ -2201,13 +1223,22 @@ "color-support": "bin.js" } }, - "node_modules/colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, "engines": { - "node": ">=0.1.90" + "node": ">= 0.8" } }, "node_modules/commander": { @@ -2217,10 +1248,13 @@ "dev": true }, "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/compute-gcd": { "version": "1.2.1", @@ -2248,7 +1282,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/concat-stream": { @@ -2266,55 +1300,16 @@ "typedarray": "^0.0.6" } }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2331,9 +1326,9 @@ } }, "node_modules/core-js": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz", - "integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.0.tgz", + "integrity": "sha512-XPpwqEodRljce9KswjZShh95qJ1URisBeKCjUdq27YdenkslVe7OO0ZJhlYXAChW7OhXaRLl8AAba7IBfoIHug==", "dev": true, "hasInstallScript": true, "funding": { @@ -2342,23 +1337,11 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -2381,117 +1364,140 @@ "node": ">=4.8" } }, - "node_modules/cson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cson/-/cson-4.1.0.tgz", - "integrity": "sha512-WJE4sajPn19i2NVs7PUjODPoEcwE7NEmVDsXYxyYca7UOcWcGIZM7xPtI0VQeOWxNbCLI+uvuP0BetJJfsspxQ==", + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "dependencies": { - "coffee-script": "^1.12.4", - "cson-parser": "^1.3.4", - "extract-opts": "^3.3.1", - "requirefresh": "^2.1.0", - "safefs": "^4.1.0" - }, "bin": { - "cson2json": "bin/cson2json", - "json2cson": "bin/json2cson" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cson-parser": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/cson-parser/-/cson-parser-1.3.5.tgz", - "integrity": "sha512-Pchz4dDkyafUL4V3xBuP9Os8Hu9VU96R+MxuTKh7NR+D866UiWrhBiSLbfuvwApEaJzpXhXTr3iPe4lFtXLzcQ==", - "dev": true, - "dependencies": { - "coffee-script": "^1.10.0" + "semver": "bin/semver" } }, "node_modules/css-color-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", "dev": true, - "peer": true, "engines": { "node": ">=4" } }, - "node_modules/css-to-react-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", - "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, "peer": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dev": true, "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", "postcss-value-parser": "^4.0.2" } }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", "dev": true, "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/date-extended": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/date-extended/-/date-extended-0.0.6.tgz", - "integrity": "sha512-v9a2QLTVn1GQGXf02TQaSvNfeXA/V1FL2Tr0OQYqjI5+L9T5jEtCpLYG01sxFk+m1OtwMxydkKa8NKcflANAoQ==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, "dependencies": { - "array-extended": "~0.0.3", - "extended": "~0.0.3", - "is-extended": "~0.0.3" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, - "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -2507,7 +1513,7 @@ "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2516,33 +1522,18 @@ "node_modules/decko": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz", - "integrity": "sha1-/UPHNelnuAEzBohKVvvmZZlraBc=", - "dev": true - }, - "node_modules/declare.js": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/declare.js/-/declare.js-0.0.8.tgz", - "integrity": "sha512-O659hy1gcHef7JnwtqdQlrj2c5DAEgtxm8pgFXofW7eUE1L4FjsSLlziovWcrOJAOFlEPaOJshY+0hBWCG/AnA==", + "integrity": "sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==", "dev": true }, "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, "engines": { "node": ">=0.10" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/default-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", @@ -2558,24 +1549,27 @@ "node_modules/default-resolution": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -2627,31 +1621,19 @@ "node": ">=8" } }, - "node_modules/denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", - "dev": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=0.4.0" } }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, "node_modules/detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2678,45 +1660,78 @@ "node": ">=8" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true + "node_modules/discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "dev": true, + "peer": true }, - "node_modules/duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "peer": true, "dependencies": { - "readable-stream": "~1.1.9" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/duplexer2/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "peer": true }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "peer": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "node_modules/dompurify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", + "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==", "dev": true }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "peer": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -2751,127 +1766,79 @@ "node": ">=0.10.0" } }, - "node_modules/eachr": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eachr/-/eachr-3.3.0.tgz", - "integrity": "sha512-yKWuGwOE283CTgbEuvqXXusLH4VBXnY2nZbDkeWev+cpAXY6zCIADSPLdvfkAROc0t8S4l07U1fateCdEDuuvg==", - "dev": true, - "dependencies": { - "editions": "^2.2.0", - "typechecker": "^4.9.0" - }, - "engines": { - "node": ">=0.10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/editions": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz", - "integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==", - "dev": true, - "dependencies": { - "errlop": "^2.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/editions/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", - "dev": true, - "hasInstallScript": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, - "engines": { - "node": ">= 4" + "dependencies": { + "once": "^1.4.0" } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "peer": true, "engines": { - "node": ">= 0.8" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "node_modules/enzyme": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz", + "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==", "dev": true, + "peer": true, "dependencies": { - "iconv-lite": "^0.6.2" + "array.prototype.flat": "^1.2.3", + "cheerio": "^1.0.0-rc.3", + "enzyme-shallow-equal": "^1.0.1", + "function.prototype.name": "^1.1.2", + "has": "^1.0.3", + "html-element-map": "^1.2.0", + "is-boolean-object": "^1.0.1", + "is-callable": "^1.1.5", + "is-number-object": "^1.0.4", + "is-regex": "^1.0.5", + "is-string": "^1.0.5", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.7.0", + "object-is": "^1.0.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1", + "object.values": "^1.1.1", + "raf": "^3.4.1", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.2.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/enzyme-shallow-equal": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz", + "integrity": "sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "hasown": "^2.0.0", + "object-is": "^1.1.5" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/errlop": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.2.0.tgz", - "integrity": "sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==", - "dev": true, - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/error-ex": { @@ -2884,50 +1851,57 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -2940,22 +1914,66 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true + "dev": true, + "peer": true + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" } }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "peer": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -2974,20 +1992,25 @@ } }, "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "dev": true, + "hasInstallScript": true, "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" } }, "node_modules/es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, "dependencies": { "d": "1", @@ -2998,17 +2021,20 @@ "node_modules/es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", "dev": true }, "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "dev": true, "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/es6-weak-map": { @@ -3024,29 +2050,38 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" } }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -3060,56 +2095,35 @@ "node": ">=4" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "dev": true, "dependencies": { "d": "1", "es5-ext": "~0.10.14" } }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, "engines": { "node": ">=6" } }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true, - "engines": { - "node": ">=0.8" - } + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true }, "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, "dependencies": { "debug": "^2.3.3", @@ -3136,7 +2150,7 @@ "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -3148,7 +2162,7 @@ "node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -3157,72 +2171,23 @@ "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/expand-brackets/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3231,13 +2196,13 @@ "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, "dependencies": { "homedir-polyfill": "^1.0.1" @@ -3246,83 +2211,15 @@ "node": ">=0.10.0" } }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/express/node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, "dependencies": { - "type": "^2.0.0" + "type": "^2.7.2" } }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", - "dev": true - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -3332,7 +2229,7 @@ "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "dependencies": { "assign-symbols": "^1.0.0", @@ -3342,24 +2239,6 @@ "node": ">=0.10.0" } }, - "node_modules/extended": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/extended/-/extended-0.0.6.tgz", - "integrity": "sha512-rvAV3BDGsV1SYGzUOu7aO0k82quhfl0QAyZudYhAcTeIr1rPbBnyOhOlkCLwLpDfP7HyKAWAPNSjRb9p7lE3rg==", - "dev": true, - "dependencies": { - "extender": "~0.0.5" - } - }, - "node_modules/extender": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/extender/-/extender-0.0.10.tgz", - "integrity": "sha512-iPLUHZJaNW6RuOShQX33ZpewEUIlijFBcsXnKWyiYERKWPsFxfKgx8J0xRz29hKQWPFFPACgBW6cHM7Ke1pfaA==", - "dev": true, - "dependencies": { - "declare.js": "~0.0.4" - } - }, "node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -3382,7 +2261,7 @@ "node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" @@ -3394,7 +2273,7 @@ "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -3406,29 +2285,12 @@ "node_modules/extglob/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/extract-opts": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.4.0.tgz", - "integrity": "sha512-M7Y+1cJDkzOWqvGH5F/V2qgkD6+uitW3NV9rQGl+pLSVuXZ4IDDQgxxMeLPKcWUyfypBWczIILiroSuhXG7Ytg==", - "dev": true, - "dependencies": { - "eachr": "^3.2.0", - "editions": "^2.2.0", - "typechecker": "^4.9.0" - }, - "engines": { - "node": ">=0.10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/faker": { "version": "5.5.3", "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", @@ -3450,22 +2312,6 @@ "node": ">= 0.10" } }, - "node_modules/fast-csv": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-2.5.0.tgz", - "integrity": "sha512-M/9ezLU9/uDwvDZTt9sNFJa0iLDUsbhYJwPtnE0D9MjeuB6DY9wRCyUPZta9iI6cSz5wBWGaUPL61QH8h92cNA==", - "dev": true, - "dependencies": { - "extended": "0.0.6", - "is-extended": "0.0.10", - "object-extended": "0.0.7", - "safer-buffer": "^2.1.2", - "string-extended": "0.0.8" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3473,9 +2319,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -3495,21 +2341,21 @@ "dev": true }, "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", "dev": true }, "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, "node_modules/fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -3518,16 +2364,23 @@ "node_modules/file-type": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -3536,107 +2389,50 @@ "node": ">=8" } }, - "node_modules/finalhandler": { + "node_modules/find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", "dev": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" + "node": ">=0.10.0" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/find-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/findup-sync/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" @@ -3645,7 +2441,7 @@ "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -3657,7 +2453,7 @@ "node_modules/findup-sync/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", @@ -3672,7 +2468,7 @@ "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -3684,7 +2480,7 @@ "node_modules/findup-sync/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3693,7 +2489,7 @@ "node_modules/findup-sync/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -3705,7 +2501,7 @@ "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -3750,7 +2546,7 @@ "node_modules/findup-sync/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "dependencies": { "is-number": "^3.0.0", @@ -3800,7 +2596,7 @@ "node_modules/flex-exec": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/flex-exec/-/flex-exec-1.0.0.tgz", - "integrity": "sha1-BpdLaFMoOdKhLDLevNsSN4IA/fA=", + "integrity": "sha512-YkwyKiTabXXJrcNLu9H5OQLwIhDPNEC3SBIhpuocrArjEbp1NDZtP0UGBip5ezc6KUgmXilXtE2yj7CqI9cnKQ==", "dev": true, "engines": { "node": ">= v0.10.1" @@ -3828,7 +2624,7 @@ "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3837,7 +2633,7 @@ "node_modules/for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "dev": true, "dependencies": { "for-in": "^1.0.1" @@ -3847,45 +2643,29 @@ } }, "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "node_modules/format-unicorn": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/format-unicorn/-/format-unicorn-1.1.1.tgz", - "integrity": "sha512-MEjmrLmOsxswQC+TLVgGRZTRw+QSwMTQ0aqnkWPMAw1jKcO710mET0GMwoxrm0GxN0nSSBSUVaxC4MNYyrDXHQ==", - "dev": true - }, - "node_modules/format-util": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/format-util/-/format-util-1.0.5.tgz", - "integrity": "sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", "dev": true }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/frac": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/frac/-/frac-0.3.1.tgz", - "integrity": "sha512-1Lzf2jOjhIkRaa013KlxNOn2D9FemmQNeYUDpEIyPeFXmpLvbZXJOlaayMBT6JKXx+afQFgQ1QJ4kaF7Z07QFQ==", + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, "engines": { - "node": ">=0.8" + "node": ">= 6" } }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, "dependencies": { "map-cache": "^0.2.2" @@ -3894,19 +2674,10 @@ "node": ">=0.10.0" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", "dev": true, "dependencies": { "graceful-fs": "^4.1.11", @@ -3919,26 +2690,21 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, "engines": { - "node": ">= 4.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { @@ -3987,61 +2753,39 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-proxy": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz", - "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=", - "dev": true, - "dependencies": { - "rc": "^1.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } + "node_modules/get-port-please": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", + "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", + "dev": true }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -4053,7 +2797,7 @@ "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4073,15 +2817,16 @@ } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -4104,25 +2849,10 @@ "node": ">= 6" } }, - "node_modules/glob-promise": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", - "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", - "dev": true, - "dependencies": { - "@types/glob": "*" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "glob": "*" - } - }, "node_modules/glob-stream": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", "dev": true, "dependencies": { "extend": "^3.0.0", @@ -4143,7 +2873,7 @@ "node_modules/glob-stream/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, "dependencies": { "is-glob": "^3.1.0", @@ -4153,7 +2883,7 @@ "node_modules/glob-stream/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, "dependencies": { "is-extglob": "^2.1.0" @@ -4162,19 +2892,6 @@ "node": ">=0.10.0" } }, - "node_modules/glob-stream/node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/glob-watcher": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", @@ -4193,429 +2910,357 @@ "node": ">= 0.10" } }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "node_modules/glob-watcher/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "remove-trailing-separator": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "node_modules/glob-watcher/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/glob-watcher/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "peer": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "node_modules/glob-watcher/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" }, - "engines": { - "node": ">=8" + "optionalDependencies": { + "fsevents": "^1.2.7" } }, - "node_modules/glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "node_modules/glob-watcher/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "dependencies": { - "sparkles": "^1.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3" + "is-extendable": "^0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "node_modules/glob-watcher/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" + "bindings": "^1.5.0", + "nan": "^2.12.1" }, "engines": { - "node": ">= 0.10" + "node": ">= 4.0" } }, - "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "node_modules/glob-watcher/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, - "node_modules/gulp-cli/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/gulp-cli/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/gulp-cli/node_modules/require-main-filename": { + "node_modules/glob-watcher/node_modules/is-binary-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/gulp-cli/node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "node_modules/gulp-cli/node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "node_modules/gulp-cli/node_modules/yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/gulp-gh-pages": { - "version": "0.6.0-6", - "resolved": "https://registry.npmjs.org/gulp-gh-pages/-/gulp-gh-pages-0.6.0-6.tgz", - "integrity": "sha512-9G3Z4THBrYaONcmy/3Z1t7Y0grzjcXH5YiZh/E+s4DREpfLBHy5qZyGLcc3R9hjDS/QJf+z3KfzWu8mhG6E0CA==", + "node_modules/glob-watcher/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, - "dependencies": { - "fancy-log": "^1.3.2", - "gift": "^0.10.2", - "inspect-with-kind": "^1.0.4", - "plugin-error": "^1.0.1", - "rimraf": "^2.6.2", - "vinyl": "^2.2.0", - "vinyl-fs": "^3.0.3" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/gulp-gh-pages/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "node_modules/glob-watcher/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "kind-of": "^3.0.2" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/gulp-jsonschema-deref": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/gulp-jsonschema-deref/-/gulp-jsonschema-deref-0.0.3.tgz", - "integrity": "sha512-PXzJDZJ/LxeJ04G5u8BsWZeE3jtrjPxfVDg/x5/qcJ+JzVOzpsbYibhOGTg81MbzYQtKbuuKy6MT+K8aYZGCUA==", + "node_modules/glob-watcher/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { - "gulp-util": "^3.0.8", - "json-schema-ref-parser": "^5.0.3", - "through2": "^2.0.3" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">6.0.0" + "node": ">=0.10.0" } }, - "node_modules/gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "deprecated": "gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5", + "node_modules/glob-watcher/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "dependencies": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/gulp-util/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "node_modules/glob-watcher/node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/gulp-util/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "node_modules/glob-watcher/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/gulp-util/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "node_modules/glob-watcher/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, "engines": { - "node": ">=0.8" + "node": ">=0.10.0" } }, - "node_modules/gulp-util/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">=0.8.0" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/gulp-util/node_modules/vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.9" + "node": "*" } }, - "node_modules/gulplog": { + "node_modules/global-modules": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "dependencies": { - "glogg": "^1.0.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, "engines": { - "node": ">= 0.4.0" + "node": ">=0.10.0" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-color": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", "dev": true, "dependencies": { "sparkles": "^1.0.0" @@ -4624,22 +3269,292 @@ "node": ">= 0.10" } }, - "node_modules/has-property-descriptors": { + "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/gulp-cli/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/gulp-cli/node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/gulp-cli/node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/gulp-gh-pages": { + "version": "0.6.0-6", + "resolved": "https://registry.npmjs.org/gulp-gh-pages/-/gulp-gh-pages-0.6.0-6.tgz", + "integrity": "sha512-9G3Z4THBrYaONcmy/3Z1t7Y0grzjcXH5YiZh/E+s4DREpfLBHy5qZyGLcc3R9hjDS/QJf+z3KfzWu8mhG6E0CA==", + "dev": true, + "dependencies": { + "fancy-log": "^1.3.2", + "gift": "^0.10.2", + "inspect-with-kind": "^1.0.4", + "plugin-error": "^1.0.1", + "rimraf": "^2.6.2", + "vinyl": "^2.2.0", + "vinyl-fs": "^3.0.3" + } + }, + "node_modules/gulp-gh-pages/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "engines": { "node": ">= 0.4" @@ -4661,12 +3576,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -4678,7 +3593,7 @@ "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, "dependencies": { "get-value": "^2.0.6", @@ -4692,7 +3607,7 @@ "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, "dependencies": { "is-number": "^3.0.0", @@ -4705,7 +3620,7 @@ "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -4717,7 +3632,7 @@ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -4729,7 +3644,7 @@ "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -4739,9 +3654,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -4750,24 +3665,6 @@ "node": ">= 0.4" } }, - "node_modules/hjson": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/hjson/-/hjson-2.4.3.tgz", - "integrity": "sha512-gpLABogUGlxNdW/PwdEYRBMsfU3Jvl96qkXx2D+GZIg0xllpNkuscV53Ibb1Wk4goyY6Hfm63yMRaNUExFe0hw==", - "dev": true, - "bin": { - "hjson": "bin/hjson" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, - "dependencies": { - "react-is": "^16.7.0" - } - }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -4786,34 +3683,81 @@ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, + "node_modules/html-element-map": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", + "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", + "dev": true, + "peer": true, + "dependencies": { + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, "node_modules/http-reasons": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/http-reasons/-/http-reasons-0.1.0.tgz", - "integrity": "sha1-qVPKZwB4Zp3eFCzomUAbnW6F07Q=", + "integrity": "sha512-P6kYh0lKZ+y29T2Gqz+RlC9WBLhKe8kDmcJ+A+611jFfxdPsbMRQ5aNmFRM3lENqFkK+HTTL+tlQviAiv0AbLQ==", "dev": true }, "node_modules/http2-client": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.3.tgz", - "integrity": "sha512-nUxLymWQ9pzkzTmir24p2RtsgruLmhje7lH3hLX1IpwvyTg77fW+1brenPPP3USAR+rQ36p5sTA/x7sjCJVkAA==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", + "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", "dev": true }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -4831,7 +3775,8 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "dependencies": { "once": "^1.3.0", @@ -4869,12 +3814,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -4894,21 +3839,12 @@ "node_modules/invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", @@ -4923,35 +3859,28 @@ } }, "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4960,7 +3889,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "node_modules/is-bigint": { @@ -4976,15 +3905,15 @@ } }, "node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "binary-extensions": "^1.0.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-boolean-object": { @@ -5022,36 +3951,45 @@ } }, "node_modules/is-core-module": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", - "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-date-object": { @@ -5070,26 +4008,16 @@ } }, "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-extendable": { @@ -5116,52 +4044,28 @@ "node": ">=0.10.0" } }, - "node_modules/is-extended": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/is-extended/-/is-extended-0.0.10.tgz", - "integrity": "sha512-qp+HR+L9QXbgFurvqiVgD+JiGyUboRgICNzCXmbiLtZBFVSNFbxRsI4q7Be9mCWTO5PoO1IxoWp5sl+j5b83FA==", - "dev": true, - "dependencies": { - "extended": "~0.0.3" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -5173,16 +4077,16 @@ "node_modules/is-negated-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -5215,15 +4119,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -5251,12 +4146,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -5286,26 +4175,20 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -5321,6 +4204,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", + "dev": true, + "peer": true + }, "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", @@ -5337,12 +4227,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -5366,9 +4256,18 @@ "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -5381,13 +4280,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true, - "peer": true - }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -5400,50 +4292,33 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", "dev": true, - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jjv": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jjv/-/jjv-1.0.2.tgz", - "integrity": "sha1-Bxnyy8/X3zT41XwbA7MyoPj2bn8=", - "dev": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5451,31 +4326,17 @@ "dev": true }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -5483,20 +4344,14 @@ "dev": true }, "node_modules/json-pointer": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz", - "integrity": "sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", "dev": true, "dependencies": { "foreach": "^2.0.4" } }, - "node_modules/json-schema": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.5.tgz", - "integrity": "sha512-gWJOWYFrhQ8j7pVm0EM8Slr+EPVq1Phf6lvzvD/WCeqkrx/f2xBI0xOsRRS9xCn3I4vKtP519dvs3TP09r24wQ==", - "dev": true - }, "node_modules/json-schema-compare": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", @@ -5507,338 +4362,50 @@ } }, "node_modules/json-schema-merge-allof": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.7.0.tgz", - "integrity": "sha512-kvsuSVnl1n5xnNEu5ed4o8r8ujSA4/IgRtHmpgfMfa7FOMIRAzN4F9qbuklouTn5J8bi83y6MQ11n+ERMMTXZg==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", + "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", "dev": true, "dependencies": { - "compute-lcm": "^1.1.0", + "compute-lcm": "^1.1.2", "json-schema-compare": "^0.2.2", - "lodash": "^4.17.4" + "lodash": "^4.17.20" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/json-schema-ref-parser": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-5.1.3.tgz", - "integrity": "sha512-CpDFlBwz/6la78hZxyB9FECVKGYjIIl3Ms3KLqFj99W7IIb7D00/RDgc++IGB4BBALl0QRhh5m4q5WNSopvLtQ==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "debug": "^3.1.0", - "js-yaml": "^3.12.0", - "ono": "^4.0.6" - } + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, - "node_modules/json-schema-ref-parser/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, - "node_modules/json-schema-ref-parser/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", "dev": true }, - "node_modules/json-schema-to-openapi-schema": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/json-schema-to-openapi-schema/-/json-schema-to-openapi-schema-0.3.0.tgz", - "integrity": "sha512-UaaAmmbAq61yQM5yLoVOM99GP1JI8YNVEv3QWbD/79YDNNKk99uGn1k2pa+ZSfdLILi/euGguVG8URmv5gR/Bw==", - "deprecated": "This package is no longer maintained. Use @openapi-contrib/json-schema-to-openapi-schema instead.", + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, - "dependencies": { - "@cloudflare/json-schema-walker": "^0.1.1" - } - }, - "node_modules/json-schema-to-typescript": { - "version": "10.1.4", - "resolved": "https://registry.npmjs.org/json-schema-to-typescript/-/json-schema-to-typescript-10.1.4.tgz", - "integrity": "sha512-HWm23Z6Fnj3rnm4FKZh3sMz70hNoA+AfqVuV+ZcwFIhq6v76YVUMZSLlonrw7GI5yIoiuuJjB5rqakIYRCLlsg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "@types/lodash": "^4.14.168", - "@types/prettier": "^2.1.5", - "cli-color": "^2.0.0", - "get-stdin": "^8.0.0", - "glob": "^7.1.6", - "glob-promise": "^3.4.0", - "is-glob": "^4.0.1", - "json-schema-ref-parser": "^9.0.6", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.20", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "mz": "^2.7.0", - "prettier": "^2.2.0" - }, - "bin": { - "json2ts": "dist/src/cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/json-schema-to-typescript/node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/json-schema-to-typescript/node_modules/json-schema-ref-parser": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz", - "integrity": "sha512-uxU9Ix+MVszvCTvBucQiIcNEny3oAEFg7EQHSZw2bquCCuqUqEPEczIdv/Uqo1Zv4/wDPZqOI+ulrMk1ncMtjQ==", - "dev": true, - "dependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json-to-ast": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz", - "integrity": "sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==", - "dev": true, - "dependencies": { - "code-error-fragment": "0.0.230", - "grapheme-splitter": "^1.0.4" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonlint": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.2.tgz", - "integrity": "sha1-VzcEUIX1XrRVxosf9OvAG9UOiDA=", - "dev": true, - "dependencies": { - "JSV": ">= 4.0.x", - "nomnom": ">= 1.5.x" - }, - "bin": { - "jsonlint": "lib/cli.js" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/jsonlint-cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jsonlint-cli/-/jsonlint-cli-1.0.1.tgz", - "integrity": "sha1-BFcwyrI3VkCwqI2EV/tn1heTw5Q=", - "dev": true, - "dependencies": { - "cli-rc": "1.0.12", - "core-js": "2.1.5", - "denodeify": "1.2.1", - "get-stdin": "5.0.1", - "globby": "4.0.0", - "isomorphic-fetch": "2.2.1", - "jjv": "1.0.2", - "jsonlint": "1.6.2", - "lodash": "4.6.1", - "meow": "3.7.0", - "minimatch": "3.0.0", - "mkdirp": "0.5.1", - "omni-fetch": "0.1.0", - "path-exists": "2.1.0" - }, - "bin": { - "jsonlint-cli": "index.js" - } - }, - "node_modules/jsonlint-cli/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsonlint-cli/node_modules/core-js": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.5.tgz", - "integrity": "sha1-lhCgWavCYk5b4YtuYk3Lak7UtG0=", - "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true - }, - "node_modules/jsonlint-cli/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsonlint-cli/node_modules/globby": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.0.0.tgz", - "integrity": "sha1-Nv8GxancHbwgH3AAdJkogoV+mBc=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^6.0.1", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsonlint-cli/node_modules/lodash": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.6.1.tgz", - "integrity": "sha1-3wDBFkrSNrGDz8OIel6NOMxjy7w=", - "dev": true - }, - "node_modules/jsonlint-cli/node_modules/minimatch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "integrity": "sha1-UjYVelHk8ATBd/s8Un/33Xjw74M=", - "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", - "dev": true, - "dependencies": { - "brace-expansion": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsonlint-cli/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/jsonlint-cli/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/jsonlint-cli/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsonlint-cli/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsonpointer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz", - "integrity": "sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/JSV": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, - "node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "engines": { + "node": ">=0.10.0" } }, "node_modules/last-run": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", "dev": true, "dependencies": { "default-resolution": "^2.0.0", @@ -5863,7 +4430,7 @@ "node_modules/lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", "dev": true, "dependencies": { "invert-kv": "^1.0.0" @@ -5875,7 +4442,7 @@ "node_modules/lead": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", "dev": true, "dependencies": { "flush-write-stream": "^1.0.2" @@ -5884,24 +4451,6 @@ "node": ">= 0.10" } }, - "node_modules/leprechaun": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/leprechaun/-/leprechaun-0.0.2.tgz", - "integrity": "sha1-i5ZRSp5jTFP75ZqAlPM3jI+yCE0=", - "dev": true, - "dependencies": { - "log-symbols": "^1.0.2" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/liftoff": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", @@ -5936,62 +4485,37 @@ "node_modules/liquid-json": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/liquid-json/-/liquid-json-0.3.1.tgz", - "integrity": "sha1-kVWhgTbYprJhXl8W+aJEira1Duo=", + "integrity": "sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=4" } }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/lodash": { @@ -6000,216 +4524,55 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "node_modules/lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "node_modules/lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "node_modules/lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "node_modules/lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "node_modules/lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "node_modules/lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, "node_modules/lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", + "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", "dev": true, - "dependencies": { - "lodash._root": "^3.0.0" - } + "peer": true }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "peer": true }, - "node_modules/lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", "dev": true }, - "node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", - "dev": true - }, - "node_modules/lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "dependencies": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" - } - }, - "node_modules/log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "dependencies": { - "chalk": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.2" - } + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true }, "node_modules/make-error": { "version": "1.3.6", @@ -6238,31 +4601,10 @@ "node": ">=0.10.0" } }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6271,7 +4613,7 @@ "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, "dependencies": { "object-visit": "^1.0.0" @@ -6283,13 +4625,25 @@ "node_modules/mark.js": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha1-GA8fnr74sOY45BZq1S24eb6y/8U=", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", "dev": true }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/matchdep": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", "dev": true, "dependencies": { "findup-sync": "^2.0.0", @@ -6325,7 +4679,7 @@ "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -6337,7 +4691,7 @@ "node_modules/matchdep/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", @@ -6352,7 +4706,7 @@ "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -6364,7 +4718,7 @@ "node_modules/matchdep/node_modules/findup-sync": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", "dev": true, "dependencies": { "detect-file": "^1.0.0", @@ -6379,7 +4733,7 @@ "node_modules/matchdep/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6388,7 +4742,7 @@ "node_modules/matchdep/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, "dependencies": { "is-extglob": "^2.1.0" @@ -6400,7 +4754,7 @@ "node_modules/matchdep/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -6412,7 +4766,7 @@ "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -6457,7 +4811,7 @@ "node_modules/matchdep/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "dependencies": { "is-number": "^3.0.0", @@ -6467,112 +4821,15 @@ "node": ">=0.10.0" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memoize-one": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", - "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==", - "dev": true - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/memoizee/node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, "engines": { "node": ">= 0.10.0" } }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-anything": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-2.4.4.tgz", - "integrity": "sha512-l5XlriUDJKQT12bH+rVhAHjwIuXWdAIecGwsYjv2LJo+dA1AeRTmeQS+3QBpO6lEthBMDi2IUMpLC1yyRvGlwQ==", - "dev": true, - "peer": true, - "dependencies": { - "is-what": "^3.3.1" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -6582,44 +4839,23 @@ "node": ">= 8" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "engines": { "node": ">= 0.6" @@ -6635,52 +4871,37 @@ } }, "node_modules/mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { - "mime-db": "1.48.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" - } - }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mixin-deep": { "version": "1.3.2", @@ -6695,34 +4916,79 @@ "node": ">=0.10.0" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/mobx": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.13.1.tgz", + "integrity": "sha512-ekLRxgjWJr8hVxj9ZKuClPwM/iHckx3euIJ3Np7zLVNtqJvfbbq7l370W/98C8EabdQ1pB5Jd3BbDWxJPNnaOg==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/mobx-react": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-9.1.1.tgz", + "integrity": "sha512-gVV7AdSrAAxqXOJ2bAbGa5TkPqvITSzaPiiEkzpW4rRsMhSec7C2NBCJYILADHKp2tzOAIETGRsIY0UaCV5aEw==", "dev": true, - "peer": true + "dependencies": { + "mobx-react-lite": "^4.0.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.9.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } }, - "node_modules/multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "node_modules/mobx-react-lite": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-4.0.7.tgz", + "integrity": "sha512-RjwdseshK9Mg8On5tyJZHtGD+J78ZnCnRaxeQDSiciKVQDUbfZcXhmld0VMxAwvcTnPEHZySGGewm467Fcpreg==", "dev": true, "dependencies": { - "duplexer2": "0.0.2" + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.9.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } } }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true, + "peer": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/mute-stdout": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", @@ -6732,33 +4998,31 @@ "node": ">= 0.10" } }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "node_modules/nan": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } + "optional": true }, - "node_modules/mz/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -6790,70 +5054,39 @@ "node": ">=0.10.0" } }, - "node_modules/nconf": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.10.0.tgz", - "integrity": "sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q==", + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", "dev": true, + "peer": true, "dependencies": { - "async": "^1.4.0", - "ini": "^1.3.0", - "secure-keys": "^1.0.0", - "yargs": "^3.19.0" + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/nconf-yaml": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nconf-yaml/-/nconf-yaml-1.0.2.tgz", - "integrity": "sha1-/qBlMzz0K3el6AYFF5aXmdQVZXU=", - "dev": true, - "dependencies": { - "js-yaml": "^3.2.3" + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" }, - "peerDependencies": { - "nconf": "*" - } - }, - "node_modules/nconf/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nconf/node_modules/yargs": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", - "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", - "dev": true, - "dependencies": { - "camelcase": "^2.0.1", - "cliui": "^3.0.3", - "decamelize": "^1.1.1", - "os-locale": "^1.4.0", - "string-width": "^1.0.1", - "window-size": "^0.1.4", - "y18n": "^3.2.0" + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" } }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, "node_modules/nice-try": { @@ -6863,9 +5096,9 @@ "dev": true }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -6897,64 +5130,12 @@ "node_modules/node-readfiles": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", - "integrity": "sha1-271K8SE04uY1wkXvk//Pb2BnOl0=", + "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", "dev": true, "dependencies": { "es6-promise": "^3.2.1" } }, - "node_modules/nomnom": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", - "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", - "deprecated": "Package no longer supported. Contact support@npmjs.com for more info.", - "dev": true, - "dependencies": { - "chalk": "~0.4.0", - "underscore": "~1.6.0" - } - }, - "node_modules/nomnom/node_modules/ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/nomnom/node_modules/chalk": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "dev": true, - "dependencies": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/nomnom/node_modules/strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", - "dev": true, - "bin": { - "strip-ansi": "cli.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/nomnom/node_modules/underscore": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", - "dev": true - }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -6967,6 +5148,15 @@ "validate-npm-package-license": "^3.0.1" } }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -7013,156 +5203,45 @@ "node": ">= 4" } }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "node_modules/npm-run-all/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/npm-run-all/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "peer": true, "dependencies": { - "path-key": "^2.0.0" + "boolbase": "^1.0.0" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7178,9 +5257,9 @@ } }, "node_modules/oas-linter": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.1.tgz", - "integrity": "sha512-e5G6bbq3Nrfxm+SDPR5AiZ6n2smVUmhLA1OgI2/Bl8e2ywfWsKw/yuqrwiXXiNHb1wdM/GyPMX6QjCGJODlaaA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", + "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", "dev": true, "dependencies": { "@exodus/schemasafe": "^1.0.0-rc.2", @@ -7192,16 +5271,16 @@ } }, "node_modules/oas-resolver": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.4.tgz", - "integrity": "sha512-1vIj5Wkjmi+kZj5sFamt95LkuXoalmoKUohtaUQoCQZjLfPFaY8uZ7nw6IZaWuE6eLON2b6xrXhxD4hiTdYl0g==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", + "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", "dev": true, "dependencies": { "node-fetch-h2": "^2.3.0", "oas-kit-common": "^1.0.8", - "reftools": "^1.1.8", + "reftools": "^1.1.9", "yaml": "^1.10.0", - "yargs": "^16.1.1" + "yargs": "^17.0.1" }, "bin": { "resolve": "resolve.js" @@ -7210,65 +5289,117 @@ "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/oas-resolver/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/oas-resolver/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/oas-resolver-browser": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/oas-resolver-browser/-/oas-resolver-browser-2.5.2.tgz", + "integrity": "sha512-L3ugWyBHOpKLT+lb+pFXCOpk3byh6usis5T9u9mfu92jH5bR6YK8MA2bebUTIjY7I4415PzDeZcmcc+i7X05MA==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "path-browserify": "^1.0.1", + "reftools": "^1.1.6", + "yaml": "^1.10.0", + "yargs": "^15.3.1" + }, + "bin": { + "resolve": "resolve.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/oas-resolver/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/oas-resolver-browser/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/oas-resolver/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/oas-resolver-browser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/oas-resolver/node_modules/strip-ansi": { + "node_modules/oas-resolver-browser/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/oas-resolver-browser/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/oas-resolver-browser/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/oas-resolver-browser/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/oas-resolver/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/oas-resolver-browser/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/oas-resolver-browser/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/oas-resolver-browser/node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/oas-resolver-browser/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -7276,46 +5407,48 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, - "node_modules/oas-resolver/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } + "node_modules/oas-resolver-browser/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true }, - "node_modules/oas-resolver/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/oas-resolver-browser/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/oas-resolver/node_modules/yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "node_modules/oas-resolver-browser/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "engines": { - "node": ">=10" + "node": ">=6" } }, "node_modules/oas-schema-walker": { @@ -7327,10 +5460,29 @@ "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, + "node_modules/oas-validator": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", + "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", + "dev": true, + "dependencies": { + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.2.2", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.9", + "should": "^13.2.1", + "yaml": "^1.10.0" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, "node_modules/object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7339,7 +5491,7 @@ "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, "dependencies": { "copy-descriptor": "^0.1.0", @@ -7353,7 +5505,7 @@ "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -7362,57 +5514,23 @@ "node": ">=0.10.0" } }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -7421,22 +5539,30 @@ "node": ">=0.10.0" } }, - "node_modules/object-extended": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/object-extended/-/object-extended-0.0.7.tgz", - "integrity": "sha512-2LJYIacEXoZ1glGkAZuvA/4pfJM4Y1ShReAo9jWpBSuz89TiUCdiPqhGJJ6m97F3WjhCSRwrbgaxYEAm9dRYBw==", + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, - "dependencies": { - "array-extended": "~0.0.4", - "extended": "~0.0.3", - "is-extended": "~0.0.3" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7453,7 +5579,7 @@ "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, "dependencies": { "isobject": "^3.0.0" @@ -7483,7 +5609,7 @@ "node_modules/object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "dev": true, "dependencies": { "array-each": "^1.0.1", @@ -7495,29 +5621,25 @@ "node": ">=0.10.0" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", - "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, + "peer": true, "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "safe-array-concat": "^1.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.4" } }, "node_modules/object.map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", "dev": true, "dependencies": { "for-own": "^1.0.0", @@ -7530,7 +5652,7 @@ "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, "dependencies": { "isobject": "^3.0.1" @@ -7542,7 +5664,7 @@ "node_modules/object.reduce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", "dev": true, "dependencies": { "for-own": "^1.0.0", @@ -7552,46 +5674,41 @@ "node": ">=0.10.0" } }, - "node_modules/omni-fetch": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/omni-fetch/-/omni-fetch-0.1.0.tgz", - "integrity": "sha1-Och1UMG7jdLMH7pUj0L1Jnpa7jk=", - "dev": true, - "dependencies": { - "caw": "^1.2.0" - }, - "peerDependencies": { - "isomorphic-fetch": "^2" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, + "peer": true, "dependencies": { - "ee-first": "1.1.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" } }, - "node_modules/ono": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz", - "integrity": "sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==", + "node_modules/openapi-sampler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.5.1.tgz", + "integrity": "sha512-tIWIrZUKNAsbqf3bd9U1oH6JEXo8LNYuDlXw26By67EygpjT+ArFnsxxyTMjFWRfbqo5ozkvgSQDK69Gd8CddA==", "dev": true, "dependencies": { - "format-util": "^1.0.3" + "@types/json-schema": "^7.0.7", + "json-pointer": "0.6.2" } }, "node_modules/openapi-to-postmanv2": { @@ -7618,63 +5735,32 @@ "node": ">=8" } }, - "node_modules/openapi-to-postmanv2/node_modules/async": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", - "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", - "dev": true - }, - "node_modules/openapi-to-postmanv2/node_modules/json-schema-merge-allof": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", - "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", + "node_modules/openapi-to-postmanv2/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { - "compute-lcm": "^1.1.2", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.20" - }, - "engines": { - "node": ">=12.0.0" + "sprintf-js": "~1.0.2" } }, - "node_modules/openapi-to-postmanv2/node_modules/oas-resolver-browser": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/oas-resolver-browser/-/oas-resolver-browser-2.5.2.tgz", - "integrity": "sha512-L3ugWyBHOpKLT+lb+pFXCOpk3byh6usis5T9u9mfu92jH5bR6YK8MA2bebUTIjY7I4415PzDeZcmcc+i7X05MA==", + "node_modules/openapi-to-postmanv2/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { - "node-fetch-h2": "^2.3.0", - "oas-kit-common": "^1.0.8", - "path-browserify": "^1.0.1", - "reftools": "^1.1.6", - "yaml": "^1.10.0", - "yargs": "^15.3.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { - "resolve": "resolve.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/openapi-to-postmanv2/node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/openapi-types": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-11.0.0.tgz", - "integrity": "sha512-GB+QO6o1hAtKsb8tP3/FTD5jpkdKrf42L4Gel9UySngMurzr+Q9pO+dtnmySQCzoCEfJr39IH6bveEn71xNcVg==", - "dev": true, - "peer": true - }, "node_modules/ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", "dev": true, "dependencies": { "readable-stream": "^2.0.1" @@ -7683,7 +5769,7 @@ "node_modules/os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", "dev": true, "dependencies": { "lcid": "^1.0.0" @@ -7692,33 +5778,6 @@ "node": ">=0.10.0" } }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -7735,15 +5794,15 @@ } }, "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/p-map": { @@ -7770,7 +5829,7 @@ "node_modules/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, "dependencies": { "is-absolute": "^1.0.0", @@ -7782,15 +5841,16 @@ } }, "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, "dependencies": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/parse-node-version": { @@ -7805,49 +5865,76 @@ "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, - "engines": { - "node": ">= 0.8" + "peer": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "peer": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", "dev": true }, "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7856,7 +5943,7 @@ "node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, "engines": { "node": ">=4" @@ -7871,7 +5958,7 @@ "node_modules/path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, "dependencies": { "path-root-regex": "^0.1.0" @@ -7883,18 +5970,12 @@ "node_modules/path-root-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -7905,15 +5986,28 @@ } }, "node_modules/perfect-scrollbar": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", - "integrity": "sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz", + "integrity": "sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true, + "peer": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -7935,18 +6029,18 @@ } }, "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7955,7 +6049,7 @@ "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "dependencies": { "pinkie": "^2.0.0" @@ -7979,13 +6073,22 @@ "node": ">= 0.10" } }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/polished": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/polished/-/polished-3.7.1.tgz", - "integrity": "sha512-/QgHrNGYwIA4mwxJ/7FSvalUJsm7KNfnXiScVSEG2Xa5qxDeBn4nmdjN2pW00mkM2Tts64ktc47U8F7Ed1BRAA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", + "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.12.5" + "@babel/runtime": "^7.17.8" }, "engines": { "node": ">=10" @@ -7994,18 +6097,54 @@ "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, - "peer": true + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true }, "node_modules/postman-collection": { "version": "4.0.0", @@ -8029,28 +6168,25 @@ "node": ">=10" } }, - "node_modules/postman-collection/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/postman-collection/node_modules/mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/postman-collection/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/postman-collection/node_modules/mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "mime-db": "1.48.0" }, "engines": { - "node": ">=10" + "node": ">= 0.6" } }, "node_modules/postman-collection/node_modules/semver": { @@ -8068,12 +6204,6 @@ "node": ">=10" } }, - "node_modules/postman-collection/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/postman-url-encoder": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/postman-url-encoder/-/postman-url-encoder-3.0.1.tgz", @@ -8086,52 +6216,22 @@ "node": ">=10" } }, - "node_modules/prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "dev": true, "engines": { "node": ">= 0.8" } }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "dev": true, - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/prismjs": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", - "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==", - "dev": true - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", "dev": true, "engines": { - "node": ">= 0.6.0" + "node": ">=6" } }, "node_modules/process-nextick-args": { @@ -8141,42 +6241,26 @@ "dev": true }, "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/prop-types/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "react-is": "^16.13.1" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", @@ -8194,34 +6278,15 @@ "pump": "^2.0.0" } }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -8242,213 +6307,162 @@ } ] }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "dev": true, - "engines": { - "node": ">= 0.6" + "peer": true, + "dependencies": { + "performance-now": "^2.1.0" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", "dev": true, + "peer": true + }, + "node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dev": true, + "peer": true, "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" }, - "bin": { - "rc": "cli.js" + "engines": { + "node": ">=0.12" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" } }, "node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, - "peer": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, - "peer": true, "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^16.14.0" + "react": "^18.3.1" } }, - "node_modules/react-dom/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-dropdown": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/react-dropdown/-/react-dropdown-1.9.2.tgz", - "integrity": "sha512-g4eufErTi5P5T5bGK+VmLl//qvAHy79jm6KKx8G2Tl3mG90bpigb+Aw85P+C2JUdAnIIQdv8kP/oHN314GvAfw==", + "node_modules/react-tabs": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-6.0.2.tgz", + "integrity": "sha512-aQXTKolnM28k3KguGDBSAbJvcowOQr23A+CUJdzJtOSDOtTwzEaJA+1U4KwhNL9+Obe+jFS7geuvA7ICQPXOnQ==", "dev": true, "dependencies": { - "classnames": "^2.2.3" + "clsx": "^2.0.0", + "prop-types": "^15.5.0" }, "peerDependencies": { - "react": "^0.14.7 || ^15.0.0-0 || ^16.0.0 || ^17.0.0", - "react-dom": "^0.14.7 || ^15.0.0-0 || ^16.0.0 || ^17.0.0" + "react": "^18.0.0" } }, - "node_modules/react-hot-loader": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.13.0.tgz", - "integrity": "sha512-JrLlvUPqh6wIkrK2hZDfOyq/Uh/WeVEr8nc7hkn2/3Ul0sx1Kr5y4kOGNacNRoj7RhwLNcQ3Udf1KJXrqc0ZtA==", + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, "dependencies": { - "fast-levenshtein": "^2.0.6", - "global": "^4.3.0", - "hoist-non-react-statics": "^3.3.0", - "loader-utils": "^1.1.0", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.1.0", - "source-map": "^0.7.3" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "@types/react": "^15.0.0 || ^16.0.0 || ^17.0.0 ", - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 ", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 " - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">=4" } }, - "node_modules/react-hot-loader/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "dev": true - }, - "node_modules/react-tabs": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.2.2.tgz", - "integrity": "sha512-/o52eGKxFHRa+ssuTEgSM8qORnV4+k7ibW+aNQzKe+5gifeVz8nLxCrsI9xdRhfb0wCLdgIambIpb1qCxaMN+A==", - "dev": true, - "dependencies": { - "clsx": "^1.1.0", - "prop-types": "^15.5.0" - }, - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0-0" - } - }, - "node_modules/react/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg": { + "node_modules/read-pkg-up/node_modules/load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", "dev": true, "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "node_modules/read-pkg-up/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "dev": true, "dependencies": { - "pinkie-promise": "^2.0.0" + "error-ex": "^1.2.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg/node_modules/path-type": { + "node_modules/read-pkg-up/node_modules/path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -8459,4299 +6473,547 @@ "node": ">=0.10.0" } }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/readdirp/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/read-pkg-up/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/readdirp/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", "dev": true, "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/read-pkg-up/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "is-utf8": "^0.2.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/readdirp/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/is-number": { + "node_modules/read-pkg/node_modules/path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli": { - "version": "0.13.16", - "resolved": "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.13.16.tgz", - "integrity": "sha512-/rqkqJV1r5xgnEFh6cSmv+sZuo/TGCXKRBKZwoC0rLny5N6WGx9YykJhe1jSM4XRbK3VDfrQtOJmPCaI1ut6gg==", - "dev": true, - "hasShrinkwrap": true, - "dependencies": { - "chokidar": "^3.5.1", - "handlebars": "^4.7.7", - "isarray": "^2.0.5", - "mkdirp": "^1.0.4", - "mobx": "^6.3.2", - "node-libs-browser": "^2.2.1", - "react": "^17.0.1", - "react-dom": "^17.0.1", - "redoc": "2.0.0-rc.72", - "styled-components": "^5.3.0", - "yargs": "^17.3.1" - }, - "bin": { - "redoc-cli": "index.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/redoc-cli/node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/redoc-cli/node_modules/@babel/generator": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", - "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.14.2", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/redoc-cli/node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/redoc-cli/node_modules/@babel/helper-function-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", - "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.14.2" - } - }, - "node_modules/redoc-cli/node_modules/@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/redoc-cli/node_modules/@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/redoc-cli/node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/redoc-cli/node_modules/@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/redoc-cli/node_modules/@babel/parser": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", - "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/redoc-cli/node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/redoc-cli/node_modules/@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/redoc-cli/node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "node_modules/redoc-cli/node_modules/@babel/types": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", - "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/redoc-cli/node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "dev": true, - "dependencies": { - "@emotion/memoize": "0.7.4" - } - }, - "node_modules/redoc-cli/node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/@exodus/schemasafe": { - "version": "1.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.6.tgz", - "integrity": "sha512-dDnQizD94EdBwEj/fh3zPRa/HWCS9O5au2PuHhZBbuM3xWHxuaKzPBOEWze7Nn0xW68MIpZ7Xdyn1CoCpjKCuQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/@redocly/ajv": { - "version": "8.6.4", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.6.4.tgz", - "integrity": "sha512-y9qNj0//tZtWB2jfXNK3BX18BSBp9zNR7KE7lMysVHwbZtY392OJCjm6Rb/h4UHH2r1AqjNEHFD6bRn+DqU9Mw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/redoc-cli/node_modules/@redocly/openapi-core": { - "version": "1.0.0-beta.97", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.97.tgz", - "integrity": "sha512-3WW9/6flosJuRtU3GI0Vw39OYFZqqXMDCp5TLa3EjXOb7Nm6AZTWRb3Y+I/+UdNJ/NTszVJkQczoa1t476ekiQ==", - "dev": true, - "dependencies": { - "@redocly/ajv": "^8.6.4", - "@types/node": "^14.11.8", - "colorette": "^1.2.0", - "js-levenshtein": "^1.1.6", - "js-yaml": "^4.1.0", - "lodash.isequal": "^4.5.0", - "minimatch": "^5.0.1", - "node-fetch": "^2.6.1", - "pluralize": "^8.0.0", - "yaml-ast-parser": "0.0.43" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/redoc-cli/node_modules/@redocly/openapi-core/node_modules/@types/node": { - "version": "14.18.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.17.tgz", - "integrity": "sha512-oajWz4kOajqpKJMPgnCvBajPq8QAvl2xIWoFjlAJPKGu6n7pjov5SxGE45a+0RxHDoo4ycOMoZw1SCOWtDERbw==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/@types/chokidar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/chokidar/-/chokidar-2.1.3.tgz", - "integrity": "sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==", - "deprecated": "This is a stub types definition. chokidar provides its own type definitions, so you do not need this installed.", - "extraneous": true, - "dependencies": { - "chokidar": "*" - } - }, - "node_modules/redoc-cli/node_modules/@types/eslint": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/redoc-cli/node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/redoc-cli/node_modules/@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/@types/handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA==", - "deprecated": "This is a stub types definition. handlebars provides its own type definitions, so you do not need this installed.", - "extraneous": true, - "dependencies": { - "handlebars": "*" - } - }, - "node_modules/redoc-cli/node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/@types/mkdirp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.1.tgz", - "integrity": "sha512-HkGSK7CGAXncr8Qn/0VqNtExEE+PHMWb+qlR1faHMao7ng6P3tAaoWWBMdva0gL5h4zprjIO89GJOLXsMcDm1Q==", - "extraneous": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/redoc-cli/node_modules/@types/node": { - "version": "15.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz", - "integrity": "sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/redoc-cli/node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/redoc-cli/node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/redoc-cli/node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/redoc-cli/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/redoc-cli/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/redoc-cli/node_modules/ajv/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/redoc-cli/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/redoc-cli/node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/redoc-cli/node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/redoc-cli/node_modules/babel-plugin-styled-components": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz", - "integrity": "sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-module-imports": "^7.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, - "node_modules/redoc-cli/node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/redoc-cli/node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/redoc-cli/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/redoc-cli/node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/redoc-cli/node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/redoc-cli/node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/redoc-cli/node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/redoc-cli/node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/redoc-cli/node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/redoc-cli/node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/redoc-cli/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/redoc-cli/node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/buffer/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/caniuse-lite": { - "version": "1.0.30001303", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", - "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/redoc-cli/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/redoc-cli/node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/redoc-cli/node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/redoc-cli/node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/redoc-cli/node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/redoc-cli/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/redoc-cli/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/core-js": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", - "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", - "dev": true, - "hasInstallScript": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/redoc-cli/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/redoc-cli/node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/redoc-cli/node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/redoc-cli/node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/redoc-cli/node_modules/css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/css-to-react-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", - "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", - "dev": true, - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/redoc-cli/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/redoc-cli/node_modules/decko": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz", - "integrity": "sha1-/UPHNelnuAEzBohKVvvmZZlraBc=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/redoc-cli/node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/redoc-cli/node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/redoc-cli/node_modules/dompurify": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.5.tgz", - "integrity": "sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/electron-to-chromium": { - "version": "1.4.54", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.54.tgz", - "integrity": "sha512-jRAoneRdSxnpRHO0ANpnEUtQHXxlgfVjrLOnQSisw1ryjXJXvS0pJaR/v2B7S++/tRjgEDp4Sjn5nmgb6uTySw==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/redoc-cli/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/redoc-cli/node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/redoc-cli/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/redoc-cli/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/redoc-cli/node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "peer": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/redoc-cli/node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/redoc-cli/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/redoc-cli/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/redoc-cli/node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/redoc-cli/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/redoc-cli/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/redoc-cli/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/redoc-cli/node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/redoc-cli/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/redoc-cli/node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/redoc-cli/node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/redoc-cli/node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/redoc-cli/node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/http2-client": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", - "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/redoc-cli/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/redoc-cli/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/redoc-cli/node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/redoc-cli/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "dev": true, - "dependencies": { - "foreach": "^2.0.4" - } - }, - "node_modules/redoc-cli/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/redoc-cli/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/redoc-cli/node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/mark.js": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha1-GA8fnr74sOY45BZq1S24eb6y/8U=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/marked": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.15.tgz", - "integrity": "sha512-esX5lPdTfG4p8LDkv+obbRCyOKzB+820ZZyMOXJZygZBHrH9b3xXR64X4kT3sPe9Nx8qQXbmcz6kFSMt4Nfk6Q==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/redoc-cli/node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/redoc-cli/node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/redoc-cli/node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/redoc-cli/node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "peer": true, - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/redoc-cli/node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/redoc-cli/node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/redoc-cli/node_modules/mobx": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.2.tgz", - "integrity": "sha512-xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - } - }, - "node_modules/redoc-cli/node_modules/mobx-react": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-7.2.1.tgz", - "integrity": "sha512-LZS99KFLn75VWDXPdRJhILzVQ7qLcRjQbzkK+wVs0Qg4kWw5hOI2USp7tmu+9zP9KYsVBmKyx2k/8cTTBfsymw==", - "dev": true, - "dependencies": { - "mobx-react-lite": "^3.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - }, - "peerDependencies": { - "mobx": "^6.1.0", - "react": "^16.8.0 || ^17" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/redoc-cli/node_modules/mobx-react-lite": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.3.tgz", - "integrity": "sha512-7exWp1FV0M9dP08H9PIeHlJqDw4IdkQVRMfLYaZFMmlbzSS6ZU6p/kx392KN+rVf81hH3IQYewvRGQ70oiwmbw==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - }, - "peerDependencies": { - "mobx": "^6.1.0", - "react": "^16.8.0 || ^17" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/redoc-cli/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/redoc-cli/node_modules/node-fetch-h2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", - "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", - "dev": true, - "dependencies": { - "http2-client": "^1.2.5" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/redoc-cli/node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/redoc-cli/node_modules/node-readfiles": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", - "integrity": "sha1-271K8SE04uY1wkXvk//Pb2BnOl0=", - "dev": true, - "dependencies": { - "es6-promise": "^3.2.1" - } - }, - "node_modules/redoc-cli/node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/oas-kit-common": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", - "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/redoc-cli/node_modules/oas-linter": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", - "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", - "dev": true, - "dependencies": { - "@exodus/schemasafe": "^1.0.0-rc.2", - "should": "^13.2.1", - "yaml": "^1.10.0" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/oas-resolver": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", - "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", - "dev": true, - "dependencies": { - "node-fetch-h2": "^2.3.0", - "oas-kit-common": "^1.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - }, - "bin": { - "resolve": "resolve.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/oas-schema-walker": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", - "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", - "dev": true, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/oas-validator": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", - "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "oas-kit-common": "^1.0.8", - "oas-linter": "^3.2.2", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "reftools": "^1.1.9", - "should": "^13.2.1", - "yaml": "^1.10.0" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/openapi-sampler": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.3.0.tgz", - "integrity": "sha512-2QfjK1oM9Sv0q82Ae1RrUe3yfFmAyjF548+6eAeb+h/cL1Uj51TW4UezraBEvwEdzoBgfo4AaTLVFGTKj+yYDw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.7", - "json-pointer": "0.6.2" - } - }, - "node_modules/redoc-cli/node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/redoc-cli/node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/redoc-cli/node_modules/perfect-scrollbar": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz", - "integrity": "sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/redoc-cli/node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/polished": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz", - "integrity": "sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.16.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/redoc-cli/node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/redoc-cli/node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/redoc-cli/node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/redoc-cli/node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/redoc-cli/node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/redoc-cli/node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/redoc-cli/node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/redoc-cli/node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/redoc-cli/node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/redoc-cli/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "peer": true - }, - "node_modules/redoc-cli/node_modules/react-tabs": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.2.3.tgz", - "integrity": "sha512-jx325RhRVnS9DdFbeF511z0T0WEqEoMl1uCE3LoZ6VaZZm7ytatxbum0B8bCTmaiV0KsU+4TtLGTGevCic7SWg==", - "dev": true, - "dependencies": { - "clsx": "^1.1.0", - "prop-types": "^15.5.0" - }, - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0-0" - } - }, - "node_modules/redoc-cli/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/redoc-cli/node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/redoc-cli/node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redoc-cli/node_modules/redoc": { - "version": "2.0.0-rc.72", - "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.72.tgz", - "integrity": "sha512-IX/WvVh4N3zwo4sAjnQFz6ffIUd6G47hcflxPtrpxblJaeOy0MBSzzY8f179WjssWPYcSmmndP5v0hgEXFiimg==", - "dev": true, - "dependencies": { - "@redocly/openapi-core": "^1.0.0-beta.97", - "classnames": "^2.3.1", - "decko": "^1.2.0", - "dompurify": "^2.2.8", - "eventemitter3": "^4.0.7", - "json-pointer": "^0.6.2", - "lunr": "^2.3.9", - "mark.js": "^8.11.1", - "marked": "^4.0.15", - "mobx-react": "^7.2.0", - "openapi-sampler": "^1.3.0", - "path-browserify": "^1.0.1", - "perfect-scrollbar": "^1.5.1", - "polished": "^4.1.3", - "prismjs": "^1.27.0", - "prop-types": "^15.7.2", - "react-tabs": "^3.2.2", - "slugify": "~1.4.7", - "stickyfill": "^1.1.1", - "style-loader": "^3.3.1", - "swagger2openapi": "^7.0.6", - "url-template": "^2.0.8" - }, - "engines": { - "node": ">=6.9", - "npm": ">=3.0.0" - }, - "peerDependencies": { - "core-js": "^3.1.4", - "mobx": "^6.0.4", - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0", - "styled-components": "^4.1.1 || ^5.1.1" - } - }, - "node_modules/redoc-cli/node_modules/redoc/node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/reftools": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", - "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", - "dev": true, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/redoc-cli/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/redoc-cli/node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/redoc-cli/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/redoc-cli/node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/redoc-cli/node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/redoc-cli/node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "dev": true, - "dependencies": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } - }, - "node_modules/redoc-cli/node_modules/should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "dev": true, - "dependencies": { - "should-type": "^1.4.0" - } - }, - "node_modules/redoc-cli/node_modules/should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", - "dev": true, - "dependencies": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "node_modules/redoc-cli/node_modules/should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "dev": true, - "dependencies": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" - } - }, - "node_modules/redoc-cli/node_modules/should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/slugify": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz", - "integrity": "sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/redoc-cli/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redoc-cli/node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/redoc-cli/node_modules/stickyfill": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz", - "integrity": "sha1-OUE/7p0CXHSn5ZzuyyN4TMDxfwI=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/redoc-cli/node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/redoc-cli/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/redoc-cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redoc-cli/node_modules/style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/redoc-cli/node_modules/styled-components": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", - "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^0.8.8", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-is": ">= 16.8.0" - } - }, - "node_modules/redoc-cli/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/swagger2openapi": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", - "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "node-fetch": "^2.6.1", - "node-fetch-h2": "^2.3.0", - "node-readfiles": "^0.2.0", - "oas-kit-common": "^1.0.8", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "oas-validator": "^5.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - }, - "bin": { - "boast": "boast.js", - "oas-validate": "oas-validate.js", - "swagger2openapi": "swagger2openapi.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/redoc-cli/node_modules/terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", - "dev": true, - "peer": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "acorn": "^8.5.0" - }, - "peerDependenciesMeta": { - "acorn": { - "optional": true - } - } - }, - "node_modules/redoc-cli/node_modules/terser-webpack-plugin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", - "integrity": "sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==", - "dev": true, - "peer": true, - "dependencies": { - "jest-worker": "^27.4.1", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/redoc-cli/node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/redoc-cli/node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/redoc-cli/node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redoc-cli/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/redoc-cli/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/uglify-js": { - "version": "3.13.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.9.tgz", - "integrity": "sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/redoc-cli/node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/redoc-cli/node_modules/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/redoc-cli/node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/redoc-cli/node_modules/url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/redoc-cli/node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, - "peer": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/redoc-cli/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/webpack": { - "version": "5.67.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.67.0.tgz", - "integrity": "sha512-LjFbfMh89xBDpUMgA1W9Ur6Rn/gnr2Cq1jjHFPo4v6a79/ypznSYbAyPgGhwsxBtMIaEmDD1oJoA7BEYw/Fbrw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.50", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.3", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/redoc-cli/node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/redoc-cli/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/redoc-cli/node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "node_modules/redoc-cli/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/redoc-cli/node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/redoc-cli/node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/redoc-cli/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/redoc-cli/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/redoc-cli/node_modules/yaml-ast-parser": { - "version": "0.0.43", - "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", - "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", - "dev": true - }, - "node_modules/redoc-cli/node_modules/yargs": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", - "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/redoc-cli/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/reftools": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.8.tgz", - "integrity": "sha512-Yvz9NH8uFHzD/AXX82Li1GdAP6FzDBxEZw+njerNBBQv/XHihqsWAjNfXtaq4QD2l4TEZVnp4UbktdYSegAM3g==", - "dev": true, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requirefresh": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/requirefresh/-/requirefresh-2.3.0.tgz", - "integrity": "sha512-oskKAg0pSlPnJAkFMrcqrHeCGzYunl4Hkl+N/NW3nnFWDHRg97yb475HtF5ax8LP9i8QvVkenVIhjNb+h+P7nA==", - "dev": true, - "dependencies": { - "editions": "^2.2.0" - }, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "dependencies": { - "value-or-function": "^3.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "pify": "^3.0.0" }, "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { - "ret": "~0.1.10" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "picomatch": "^2.2.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8.10.0" } }, - "node_modules/safefs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/safefs/-/safefs-4.2.0.tgz", - "integrity": "sha512-1amPBO92jw/hWS+gH/u7z7EL7YxaJ8WecBQl49tMQ6Y6EQfndxNNKwlPqDOcwpUetdmK6nKLoVdjybVScRwq5A==", + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "dependencies": { - "editions": "^2.2.0", - "graceful-fs": "^4.2.3" + "resolve": "^1.1.6" }, "engines": { - "node": ">=0.12" - }, - "funding": { - "type": "cooperative", - "url": "https://bevry.me/fund" + "node": ">= 0.10" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true - }, - "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "node_modules/redoc": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.1.5.tgz", + "integrity": "sha512-POSbVg+7WLf+/5/c6GWLxL7+9t2D+1WlZdLN0a6qaCQc+ih3XYzteRBkXEN5kjrYrRNjdspfxTZkDLN5WV3Tzg==", "dev": true, - "peer": true, "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "@cfaester/enzyme-adapter-react-18": "^0.8.0", + "@redocly/openapi-core": "^1.4.0", + "classnames": "^2.3.2", + "decko": "^1.2.0", + "dompurify": "^3.0.6", + "eventemitter3": "^5.0.1", + "json-pointer": "^0.6.2", + "lunr": "^2.3.9", + "mark.js": "^8.11.1", + "marked": "^4.3.0", + "mobx-react": "^9.1.1", + "openapi-sampler": "^1.5.0", + "path-browserify": "^1.0.1", + "perfect-scrollbar": "^1.5.5", + "polished": "^4.2.2", + "prismjs": "^1.29.0", + "prop-types": "^15.8.1", + "react-tabs": "^6.0.2", + "slugify": "~1.4.7", + "stickyfill": "^1.1.1", + "swagger2openapi": "^7.0.8", + "url-template": "^2.0.8" + }, + "engines": { + "node": ">=6.9", + "npm": ">=3.0.0" + }, + "peerDependencies": { + "core-js": "^3.1.4", + "mobx": "^6.0.4", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", + "styled-components": "^4.1.1 || ^5.1.1 || ^6.0.5" } }, - "node_modules/scheduler/node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "node_modules/reftools": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", + "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/secure-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", - "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=", + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "dependencies": { - "sver-compat": "^1.5.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/send/node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.10" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/send/node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": true }, - "node_modules/send/node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true, "engines": { - "node": ">=0.6" + "node": ">=0.10.0" } }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", "dev": true, "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.10" } }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "value-or-function": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.12" } }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { + "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true - }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "glob": "^7.1.3" }, "bin": { - "shjs": "bin/shjs" + "rimraf": "bin.js" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "node_modules/rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", "dev": true, + "peer": true, "dependencies": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" } }, - "node_modules/should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "should-type": "^1.4.0" + "queue-microtask": "^1.2.2" } }, - "node_modules/should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, - "node_modules/should-type-adaptors": { + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, "dependencies": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" + "ret": "~0.1.10" } }, - "node_modules/should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "dev": true - }, - "node_modules/shx": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.3.tgz", - "integrity": "sha512-nZJ3HFWVoTSyyB+evEKjJ1STiixGztlqwKLTUNV5KqMWtGey9fTd4KU1gdZ1X9BV6215pswQ/Jew9NsuS/fNDA==", + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.4" - }, - "bin": { - "shx": "lib/cli.js" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" }, "engines": { - "node": ">=6" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slugify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.1.tgz", - "integrity": "sha512-54gP60qIkxaUCFXORn/u+tNPqdTsqvqonB2nxjQV52wWTCuJJ4kbfU7URkpn8646Lr2T3CSh8ecDzzBK/dD9jA==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dev": true, "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" + "loose-envify": "^1.1.0" } }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" + "sver-compat": "^1.5.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { - "kind-of": "^3.2.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" + "node": ">= 0.4" } }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/extend-shallow": { + "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -12760,577 +7022,413 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "shebang-regex": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", "dev": true, "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" } }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "node_modules/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", "dev": true, - "engines": { - "node": ">= 0.10" + "dependencies": { + "should-type": "^1.4.0" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", "dev": true }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", "dev": true, "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "should-type": "^1.3.0", + "should-util": "^1.0.0" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", "dev": true }, - "node_modules/speccy": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/speccy/-/speccy-0.11.0.tgz", - "integrity": "sha512-f9XXngfae43WR9uz8m3yk935nsJIJH1YaRNNjEYqF+uL3yNlabFgixPKncJKXT2LfiMhhszwVSgrDgUaUvGBVQ==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { - "commander": "^2.18.0", - "ejs": "^2.5.2", - "express": "^4.14.0", - "json-schema-to-openapi-schema": "^0.3.0", - "nconf": "^0.10.0", - "nconf-yaml": "^1.0.2", - "node-fetch": "^2.3.0", - "node-readfiles": "^0.2.0", - "oas-linter": "^3.0.0", - "oas-resolver": "^2.2.4", - "oas-validator": "^3.0.1", - "redoc": "v2.0.0-rc.8-1", - "yaml": "^1.5.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" }, - "bin": { - "speccy": "speccy.js" - } - }, - "node_modules/speccy/node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "node_modules/speccy/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/speccy/node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/speccy/node_modules/css-to-react-native": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", - "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "node_modules/simple-websocket": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.1.0.tgz", + "integrity": "sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==", "dev": true, - "peer": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^3.3.0" + "debug": "^4.3.1", + "queue-microtask": "^1.2.2", + "randombytes": "^2.1.0", + "readable-stream": "^3.6.0", + "ws": "^7.4.2" } }, - "node_modules/speccy/node_modules/dompurify": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-1.0.11.tgz", - "integrity": "sha512-XywCTXZtc/qCX3iprD1pIklRVk/uhl8BKpkTxr+ZyMVUzSUg7wkQXRBp/euJ5J5moa1QvfpvaPQVP71z1O59dQ==", - "dev": true - }, - "node_modules/speccy/node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true - }, - "node_modules/speccy/node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "node_modules/speccy/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "node_modules/simple-websocket/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "locate-path": "^3.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=6" + "node": ">= 6" } }, - "node_modules/speccy/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/speccy/node_modules/has-flag": { + "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "peer": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/speccy/node_modules/invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "node_modules/slugify": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz", + "integrity": "sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8.0.0" } }, - "node_modules/speccy/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/json-schema-ref-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz", - "integrity": "sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==", + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "dependencies": { - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.12.1", - "ono": "^4.0.11" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "node_modules/speccy/node_modules/lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "dependencies": { - "invert-kv": "^2.0.0" + "is-descriptor": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/lunr": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.6.tgz", - "integrity": "sha512-swStvEyDqQ85MGpABCMBclZcLI/pBIlu8FFDtmX197+oEgKloJ67QnB+Tidh0340HmLMs39c4GrkPY3cmkXp6Q==", - "dev": true - }, - "node_modules/speccy/node_modules/marked": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz", - "integrity": "sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==", + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, - "bin": { - "marked": "bin/marked" + "dependencies": { + "kind-of": "^3.2.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/mobx": { - "version": "5.15.7", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-5.15.7.tgz", - "integrity": "sha512-wyM3FghTkhmC+hQjyPGGFdpehrcX1KOXsDuERhfK2YbJemkUhEB+6wzEN639T21onxlfYBmriA1PFnvxTUhcKw==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - } - }, - "node_modules/speccy/node_modules/mobx-react": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-5.4.4.tgz", - "integrity": "sha512-2mTzpyEjVB/RGk2i6KbcmP4HWcAUFox5ZRCrGvSyz49w20I4C4qql63grPpYrS9E9GKwgydBHQlA4y665LuRCQ==", + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { - "hoist-non-react-statics": "^3.0.0", - "react-lifecycles-compat": "^3.0.2" + "is-buffer": "^1.1.5" }, - "peerDependencies": { - "mobx": "^4.0.0 || ^5.0.0", - "react": "^0.13.0 || ^0.14.0 || ^15.0.0 || ^16.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/oas-validator": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-3.4.0.tgz", - "integrity": "sha512-l/SxykuACi2U51osSsBXTxdsFc8Fw41xI7AsZkzgVgWJAzoEFaaNptt35WgY9C3757RUclsm6ye5GvSyYoozLQ==", + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "ajv": "^5.5.2", - "better-ajv-errors": "^0.6.7", - "call-me-maybe": "^1.0.1", - "oas-kit-common": "^1.0.7", - "oas-linter": "^3.1.0", - "oas-resolver": "^2.3.0", - "oas-schema-walker": "^1.1.3", - "reftools": "^1.1.0", - "should": "^13.2.1", - "yaml": "^1.8.3" + "ms": "2.0.0" } }, - "node_modules/speccy/node_modules/openapi-sampler": { - "version": "1.0.0-beta.14", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.14.tgz", - "integrity": "sha512-NNmH9YAN5AaCE4w6MQXdCrmsOJJQTswHVSp075+h+iiG+OTonpZE8HzwocozovD2imx4lamkuxGLs4E4bO4Z+g==", + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { - "json-pointer": "^0.6.0" + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true, - "peer": true - }, - "node_modules/speccy/node_modules/redoc": { - "version": "2.0.0-rc.8-1", - "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.8-1.tgz", - "integrity": "sha512-/YoCdcl2QtveKz4CTXaqtOfCIaVgZZgcnfUNC5xK7xBl/LxTiNj3tUbgFmrYMLTZGzNdQ9TUJpsa7lXDKcr8Pw==", - "deprecated": "internal release", + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "classnames": "^2.2.6", - "decko": "^1.2.0", - "dompurify": "^1.0.10", - "eventemitter3": "^3.0.0", - "json-pointer": "^0.6.0", - "json-schema-ref-parser": "^6.1.0", - "lunr": "2.3.6", - "mark.js": "^8.11.1", - "marked": "^0.6.1", - "memoize-one": "^5.0.0", - "mobx-react": "^5.4.3", - "openapi-sampler": "1.0.0-beta.14", - "perfect-scrollbar": "^1.4.0", - "polished": "^3.0.3", - "prismjs": "^1.15.0", - "prop-types": "^15.7.2", - "react-dropdown": "^1.6.4", - "react-hot-loader": "^4.8.0", - "react-tabs": "^3.0.0", - "slugify": "^1.3.4", - "stickyfill": "^1.1.1", - "swagger2openapi": "^5.2.3", - "tslib": "^1.9.3" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=6.9", - "npm": ">=3.0.0" - }, - "peerDependencies": { - "mobx": "^4.2.0 || ^5.0.0", - "react": "^16.8.4", - "react-dom": "^16.8.4", - "styled-components": "^4.1.1" + "node": ">= 0.4" } }, - "node_modules/speccy/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/speccy/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/styled-components": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", - "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "hasInstallScript": true, - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@emotion/is-prop-valid": "^0.8.1", - "@emotion/unitless": "^0.7.0", - "babel-plugin-styled-components": ">= 1", - "css-to-react-native": "^2.2.2", - "memoize-one": "^5.0.0", - "merge-anything": "^2.2.4", - "prop-types": "^15.5.4", - "react-is": "^16.6.0", - "stylis": "^3.5.0", - "stylis-rule-sheet": "^0.0.10", - "supports-color": "^5.5.0" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/speccy/node_modules/swagger2openapi": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-5.4.0.tgz", - "integrity": "sha512-f5QqfXawiVijhjMtYqWZ55ESHPZFqrPC8L9idhIiuSX8O2qsa1i4MVGtCM3TQF+Smzr/6WfT/7zBuzG3aTgPAA==", + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { - "better-ajv-errors": "^0.6.1", - "call-me-maybe": "^1.0.1", - "node-fetch-h2": "^2.3.0", - "node-readfiles": "^0.2.0", - "oas-kit-common": "^1.0.7", - "oas-resolver": "^2.3.0", - "oas-schema-walker": "^1.1.3", - "oas-validator": "^3.4.0", - "reftools": "^1.1.0", - "yaml": "^1.8.3", - "yargs": "^12.0.5" - }, - "bin": { - "boast": "boast.js", - "oas-validate": "oas-validate.js", - "swagger2openapi": "swagger2openapi.js" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "node_modules/speccy/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, - "node_modules/speccy/node_modules/yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/speccy/node_modules/yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true + }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -13346,30 +7444,13 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/ssf": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.8.2.tgz", - "integrity": "sha512-+ZkFDAG+ImJ48DcZvabx6YTrZ67DKkM0kbyOOtH73mbUEvNhQWWgRZrHC8+k7GuGKWQnACYLi7bj0eCt1jmosQ==", - "dev": true, - "dependencies": { - "colors": "0.6.2", - "frac": "0.3.1", - "voc": "" - }, - "bin": { - "ssf": "bin/ssf.njs" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", "dev": true, "engines": { "node": "*" @@ -13378,7 +7459,7 @@ "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, "dependencies": { "define-property": "^0.2.5", @@ -13391,7 +7472,7 @@ "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -13400,81 +7481,23 @@ "node": ">=0.10.0" } }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" + "node": ">= 0.4" } }, "node_modules/stickyfill": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz", - "integrity": "sha1-OUE/7p0CXHSn5ZzuyyN4TMDxfwI=", + "integrity": "sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA==", "dev": true }, "node_modules/stream-exhaust": { @@ -13484,9 +7507,9 @@ "dev": true }, "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", "dev": true }, "node_modules/string_decoder": { @@ -13498,41 +7521,30 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/string-extended": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/string-extended/-/string-extended-0.0.8.tgz", - "integrity": "sha512-CK46p3AxBvBhJbBi6WrF9bCcaWH20E4NwlLSzpooG2nXWvcP2gy2YR8VN6fSwZyrbcvL4S4zoNKbR0QG52X4rw==", - "dev": true, - "dependencies": { - "array-extended": "~0.0.5", - "date-extended": "~0.0.3", - "extended": "~0.0.3", - "is-extended": "~0.0.3" - } - }, "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -13542,136 +7554,93 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "is-utf8": "^0.2.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-indent/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/styled-components": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.2.3.tgz", - "integrity": "sha512-BlR+KrLW3NL1yhvEB+9Nu9Dt51CuOnHoxd+Hj+rYPdtyR8X11uIW9rvhpy3Dk4dXXBsiW1u5U78f00Lf/afGoA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.12.tgz", + "integrity": "sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^0.8.8", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.38", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" }, "engines": { - "node": ">=10" + "node": ">= 16" }, "funding": { "type": "opencollective", @@ -13679,26 +7648,20 @@ }, "peerDependencies": { "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-is": ">= 16.8.0" + "react-dom": ">= 16.8.0" } }, - "node_modules/styled-components/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "dev": true }, - "node_modules/styled-components/node_modules/supports-color": { + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -13706,64 +7669,53 @@ "node": ">=4" } }, - "node_modules/stylis": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", - "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==", - "dev": true, - "peer": true - }, - "node_modules/stylis-rule-sheet": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", - "dev": true, - "peer": true, - "peerDependencies": { - "stylis": "^3.5.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/sver-compat": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", "dev": true, "dependencies": { "es6-iterator": "^2.0.1", "es6-symbol": "^3.1.1" } }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "node_modules/swagger2openapi": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", + "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", "dev": true, "dependencies": { - "thenify": ">= 3.1.0 < 4" + "call-me-maybe": "^1.0.1", + "node-fetch": "^2.6.1", + "node-fetch-h2": "^2.3.0", + "node-readfiles": "^0.2.0", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^5.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" }, - "engines": { - "node": ">=0.8" + "bin": { + "boast": "boast.js", + "oas-validate": "oas-validate.js", + "swagger2openapi": "swagger2openapi.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, "node_modules/through2": { @@ -13776,39 +7728,42 @@ "xtend": "~4.0.1" } }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, "node_modules/time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", "dev": true, "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "peer": true, + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -13820,7 +7775,7 @@ "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -13859,7 +7814,7 @@ "node_modules/to-through": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", "dev": true, "dependencies": { "through2": "^2.0.3" @@ -13868,33 +7823,12 @@ "node": ">= 0.10" } }, - "node_modules/toml-j0.4": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/toml-j0.4/-/toml-j0.4-1.1.1.tgz", - "integrity": "sha512-lYK5otg0+cto8YmsWcPEfeiTiC/VU6P6HA6ooaYI9K/KYT24Jg0BrYtRZK1K3cwakSMyh6nttfJL9RmQH0gyCg==", - "dev": true - }, - "node_modules/tomlify-j0.4": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-2.2.1.tgz", - "integrity": "sha512-0kCocYX8ujnbK6jQ9e+g9GLiCIfVkFaCB3DCTQDP7J79gPVZVmZgQZ/KUNe1a6hUfrmHHaErVGUjedfpaX5EZw==", - "dev": true - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -13938,73 +7872,43 @@ } } }, - "node_modules/tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true, - "engines": { - "node": "*" - } + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true }, "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", "dev": true }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typechecker": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.11.0.tgz", - "integrity": "sha512-lz39Mc/d1UBcF/uQFL5P8L+oWdIn/stvkUgHf0tPRW4aEwGGErewNXo2Nb6We2WslWifn00rhcHbbRWRcTGhuw==", - "dev": true, - "dependencies": { - "editions": "^2.2.0" - }, - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -14014,16 +7918,17 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -14033,14 +7938,20 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14049,7 +7960,7 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "node_modules/typescript": { @@ -14065,6 +7976,19 @@ "node": ">=4.2.0" } }, + "node_modules/uglify-js": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", + "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -14083,16 +8007,16 @@ "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/underscore": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", - "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true }, "node_modules/undertaker": { @@ -14119,18 +8043,12 @@ "node_modules/undertaker-registry": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", "dev": true, "engines": { "node": ">= 0.10" } }, - "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -14155,7 +8073,7 @@ "node_modules/union-value/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -14171,29 +8089,10 @@ "through2-filter": "^3.0.0" } }, - "node_modules/unique-stream/node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, "dependencies": { "has-value": "^0.3.1", @@ -14206,7 +8105,7 @@ "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dev": true, "dependencies": { "get-value": "^2.0.3", @@ -14220,7 +8119,7 @@ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, "dependencies": { "isarray": "1.0.0" @@ -14232,7 +8131,7 @@ "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -14260,10 +8159,16 @@ "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, + "node_modules/url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==", + "dev": true + }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -14273,39 +8178,21 @@ "node": ">=0.10.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "dev": true, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/util.promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.2.tgz", - "integrity": "sha512-PBdZ03m1kBnQ5cjjO0ZvJMJS+QsbyIcFwi4hY4U76OQsCO9JrOYjbCFgIF76ccFg9xnJo7ZHPkqyj1GqmdS7MA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "object.getownpropertydescriptors": "^2.1.6", - "safe-array-concat": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -14346,19 +8233,19 @@ "node_modules/validate.io-array": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=", + "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==", "dev": true }, "node_modules/validate.io-function": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha1-NDoZgC7TsZaCaceA5VjpNBHAutc=", + "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==", "dev": true }, "node_modules/validate.io-integer": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", + "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", "dev": true, "dependencies": { "validate.io-number": "^1.0.3" @@ -14367,7 +8254,7 @@ "node_modules/validate.io-integer-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", - "integrity": "sha1-LKveAzKTpry+Bj/q/pHq9GsToIk=", + "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", "dev": true, "dependencies": { "validate.io-array": "^1.0.3", @@ -14377,27 +8264,18 @@ "node_modules/validate.io-number": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=", + "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==", "dev": true }, "node_modules/value-or-function": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", "dev": true, "engines": { "node": ">= 0.10" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/vinyl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", @@ -14435,27 +8313,18 @@ "resolve-options": "^1.1.0", "through2": "^2.0.0", "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-fs/node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true, + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/vinyl-sourcemap": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", "dev": true, "dependencies": { "append-buffer": "^1.0.2", @@ -14473,7 +8342,7 @@ "node_modules/vinyl-sourcemap/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, "dependencies": { "remove-trailing-separator": "^1.0.1" @@ -14482,49 +8351,16 @@ "node": ">=0.10.0" } }, - "node_modules/vinyl/node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "node_modules/vinyl/node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/voc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/voc/-/voc-1.2.0.tgz", - "integrity": "sha512-BOuDjFFYvJdZO6e/N65AlaDItXo2TgyLjeyRYcqgAPkXpp5yTJcvkL2n+syO1r9Qc5g96tfBD2tuiMhYDmaGcA==", - "dev": true, - "bin": { - "voc": "voc.njs" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", @@ -14560,22 +8396,22 @@ } }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", "dev": true }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14584,172 +8420,87 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "dev": true, - "bin": { - "window-size": "cli.js" - }, - "engines": { - "node": ">= 0.10.0" - } + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true }, "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/xlsjs": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/xlsjs/-/xlsjs-0.7.6.tgz", - "integrity": "sha512-IQtL2z+BVYaIVzEhknZ1YBr8ItUbqiS7kaQZ3O35/k1q+kSgjVxmzwno6r3EbBgEWhrVCad2mKbnFeMmEE5zdw==", - "deprecated": "xlsjs has been merged into xlsx", - "dev": true, - "dependencies": { - "cfb": "~0.11.0", - "codepage": "", - "commander": "", - "exit-on-epipe": "", - "ssf": "~0.8.1" - }, - "bin": { - "xls": "bin/xls.njs" + "node": ">=10" }, - "engines": { - "node": ">=0.8" + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/xlsx": { - "version": "0.11.19", - "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.11.19.tgz", - "integrity": "sha512-UTfD64o5Ka/E6QHL12fzcq5wnt9MCtuwgoUdYSTDxjjDkhNmZwSfPlJH/+Yh8vE6nU/0ax3MXNrc9AP4haAmIg==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "adler-32": "~1.2.0", - "cfb": "~1.0.2", - "codepage": "~1.12.0", - "commander": "~2.13.0", - "crc-32": "~1.2.0", - "exit-on-epipe": "~1.0.1", - "ssf": "~0.10.1" - }, - "bin": { - "xlsx": "bin/xlsx.njs" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.8" - } - }, - "node_modules/xlsx/node_modules/cfb": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.0.8.tgz", - "integrity": "sha512-oA7VomcgZRWTo8V20UYLlXu4ZOCFEAfwwrcxE8PcVzXW12WOhsi38PVnymb6Xoj8y7ghoZQOOOVRBMdLJ4jCjg==", - "dev": true, - "dependencies": { - "commander": "^2.14.1", - "printj": "~1.1.2" - }, - "bin": { - "cfb": "bin/cfb.njs" + "node": ">=8" }, - "engines": { - "node": ">=0.8" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/xlsx/node_modules/cfb/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/xlsx/node_modules/codepage": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.12.2.tgz", - "integrity": "sha512-FAN+oPs/ocaPLFvIt4vEOHgWA6UJ6t+fVbbVBoXDpTpC+4JYasomYZEEjR/Miph3qQrVnIShRwwmwu4P35JW1w==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "commander": "~2.14.1", - "exit-on-epipe": "~1.0.1" - }, - "bin": { - "codepage": "bin/codepage.njs" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.8" + "node": ">=7.0.0" } }, - "node_modules/xlsx/node_modules/codepage/node_modules/commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/xlsx/node_modules/commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/xlsx/node_modules/frac": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "engines": { - "node": ">=0.8" - } - }, - "node_modules/xlsx/node_modules/ssf": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz", - "integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==", - "dev": true, - "dependencies": { - "frac": "~1.1.2" + "node": ">=8.3.0" }, - "bin": { - "ssf": "bin/ssf.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/xml2js": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", - "integrity": "sha512-1O7wk/NTQN0UEOItIYTxK4qP4sMUVU60MbF4Nj0a8jd6eebMXOicVI/KFOEsYKKH4uBpx6XG9ZGZctXK5rtO5Q==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "^4.1.0" - } - }, - "node_modules/xmlbuilder": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", - "integrity": "sha512-oEePiEefhQhAeUnwRnIBLBWmk/fsWWbQ53EEWsRuzECbQ3m5o/Esmq6H47CYYwSLW+Ynt0rS9hd0pd2ogMAWjg==", - "dev": true, - "dependencies": { - "lodash": "^4.0.0" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" }, - "engines": { - "node": ">=0.8.0" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/xtend": { @@ -14762,9 +8513,18 @@ } }, "node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/yaml": { @@ -14776,133 +8536,39 @@ "node": ">= 6" } }, - "node_modules/yaml-lint": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/yaml-lint/-/yaml-lint-1.2.4.tgz", - "integrity": "sha512-qpKE0szyKsE9TrlVPi+bxKxVAjl30QjNAOyOxy7noQdf/WCCYUlT4xiCRxMG48eyeBzMBtBN6PgGfaB0MJePNw==", - "dev": true, - "dependencies": { - "glob": "^7.1.2", - "js-yaml": "^3.10.0", - "leprechaun": "0.0.2", - "lodash.merge": "^4.6.1", - "lodash.snakecase": "^4.1.1", - "nconf": "^0.10.0" - }, - "bin": { - "yamllint": "cli.js" - } + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true }, "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/yargs/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/docs/package.json b/docs/package.json index 730e22b9c..d96823760 100644 --- a/docs/package.json +++ b/docs/package.json @@ -6,17 +6,12 @@ "main": "index.js", "types": "index.d.ts", "scripts": { - "build": "rimraf .tmp && run-s generate:schemas generate:git-info generate:docs generate:postman", - "test": "rimraf .tmp && run-s lint:yaml lint:json lint:openapi validate:schemas", - "lint:yaml": "yamllint ./openapi.yaml", - "lint:json": "jsonlint-cli ./api/**/*.json ./entities/**/*.json", - "lint:openapi": "swagger-cli validate ./openapi.yaml", - "generate:types": "ts-node ./scripts/generate-types.ts", - "generate:schemas": "gulp && npm run generate:types", - "generate:git-info": "npm run generate:git-info --prefix .. && export API_VERSION=$(shx tail -n 1 ../.git-info) && speccy resolve --output .tmp/openapi.resolved.yaml openapi.yaml && shx sed -i 'STACKS_API_VERSION' ${API_VERSION:-1.0.0} .tmp/openapi.resolved.yaml > /dev/null && any-json convert .tmp/openapi.resolved.yaml .tmp/openapi.json", - "generate:docs": "redoc-cli bundle --output .tmp/index.html .tmp/openapi.resolved.yaml", - "generate:postman": "openapi2postmanv2 --spec .tmp/openapi.resolved.yaml --output .tmp/collection.json --options folderStrategy=Tags,requestParametersResolution=Example,exampleParametersResolution=Example,schemaFaker=false 2>/dev/null", - "validate:schemas": "rimraf .tmp && gulp flattenSchemas --silent && ts-node ./scripts/validate-schemas.ts", + "build": "rimraf .tmp && run-s generate:git-info generate:openapi generate:docs generate:postman", + "test": "echo 'ok'", + "generate:git-info": "npm run generate:git-info --prefix ..", + "generate:openapi": "npm run generate:openapi --prefix ..", + "generate:docs": "redocly build-docs .tmp/openapi.yaml --output .tmp/index.html", + "generate:postman": "openapi2postmanv2 --spec .tmp/openapi.yaml --output .tmp/collection.json --options folderStrategy=Tags,requestParametersResolution=Example,exampleParametersResolution=Example,schemaFaker=false 2>/dev/null", "deploy:docs": "npm run build && gulp deployDocs" }, "author": "@hirosystems", @@ -35,29 +30,14 @@ "entities/**/*" ], "devDependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.7", - "@apidevtools/swagger-cli": "4.0.4", - "@types/json-schema-merge-allof": "0.6.0", + "@redocly/cli": "1.19.0", "@types/node": "^18.13.0", - "ajv": "6.12.6", - "any-json": "^3.1.0", - "chalk": "4.1.1", "del": "5.1.0", - "glob": "7.1.6", "gulp": "4.0.2", "gulp-gh-pages": "0.6.0-6", - "gulp-jsonschema-deref": "0.0.3", - "json-schema": "0.2.5", - "json-schema-merge-allof": "0.7.0", - "json-schema-to-typescript": "10.1.4", - "jsonlint-cli": "1.0.1", "npm-run-all": "4.1.5", "openapi-to-postmanv2": "2.13.0", - "redoc-cli": "0.13.16", - "shx": "0.3.3", - "speccy": "0.11.0", "ts-node": "^10.8.2", - "typescript": "^4.7.4", - "yaml-lint": "1.2.4" + "typescript": "^4.7.4" } } diff --git a/docs/scripts/generate-types.ts b/docs/scripts/generate-types.ts deleted file mode 100644 index d29fe1b2f..000000000 --- a/docs/scripts/generate-types.ts +++ /dev/null @@ -1,70 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -import * as glob from 'glob'; -import { compile } from 'json-schema-to-typescript'; - -const root = path.resolve(path.join(__dirname, '..')); -const typeFilePath = path.join(root, 'generated.d.ts'); -const schemaFilesPath = path.join(root, '**/*.schema.json'); - -const clearFile = async () => { - fs.writeFileSync(typeFilePath, '', 'utf8'); -}; - -const autoGeneratedMessage = `/* - This file is generated automatically. **DO NOT MODIFY THIS FILE DIRECTLY** - Updates are made by editing the JSON Schema files in the 'docs/' directory, - then running the 'npm build' script. -*/ -\n` - -function createRootSchemaTemplate() { - return { - '$schema': 'http://json-schema.org/draft-07/schema#', - 'title': 'SchemaMergeRootStub', - 'anyOf': [] as {'$ref': string}[], - }; -} - -async function run() { - const files = await new Promise((resolve, reject) => { - glob(schemaFilesPath, { ignore: ['**/node_modules/**', './node_modules/**'] }, async (err, files) => { - if (err) { - reject(err); - } else { - resolve(files); - } - }); - }); - - if (files.length === 0) { - throw new Error(`Did not find any files in ${schemaFilesPath}`); - } - clearFile(); - - // Create "root" schema with a $ref for every file, then pass to json-schema-to-typescript. - // This avoids duplicate type definitions that happen when converting one schema at a time. - const rootSchema = createRootSchemaTemplate(); - - for (const file of files) { - const relatePath = path.relative(root, file); - rootSchema.anyOf.push({ '$ref': relatePath }); - } - - const outputTypescriptCode = await compile(rootSchema, rootSchema.title, { - bannerComment: autoGeneratedMessage, - strictIndexSignatures: true, - declareExternallyReferenced: true, - unreachableDefinitions: true, - }); - - fs.writeFileSync(typeFilePath, outputTypescriptCode, 'utf8'); -} - -run().then(() => { - process.exit(0); -}).catch(error => { - console.error('generate-types error'); - console.error(error); - process.exit(1); -}); diff --git a/docs/scripts/validate-schemas.ts b/docs/scripts/validate-schemas.ts deleted file mode 100755 index bc43bd7b1..000000000 --- a/docs/scripts/validate-schemas.ts +++ /dev/null @@ -1,47 +0,0 @@ -import * as fs from 'fs'; - -import * as chalk from 'chalk'; -import * as glob from 'glob'; -import * as Ajv from 'ajv'; - -const dataEncoding = 'utf8'; - -const ajv = new Ajv(); - -glob('.tmp/**/*.example.json', (err, files) => { - if (err) throw err; - let exitCode = 0; - - files.forEach(file => { - let schema; - let exampleJson; - - // - // Schemas are precompiled to avoid inconsistent schema fragment resolution - const schemaFileName = file.replace('example', 'schema').replace('docs', 'dist'); - - // - // JSON likely invalid if error - try { - schema = JSON.parse(fs.readFileSync(schemaFileName, dataEncoding)); - exampleJson = JSON.parse(fs.readFileSync(file, dataEncoding)); - } catch (err) { - throw new Error(`${chalk.red(file)} ${err}`); - } - - const valid = ajv.validate(schema, exampleJson); - - if (!valid) { - exitCode = 1; - console.warn(`[${file}] ${chalk.red('INVALID')}\n`); - console.warn('Error at', chalk.yellow(file)); - console.warn(ajv.errorsText()); - console.warn('\n'); - return; - } - - console.log(`[${file}] ${chalk.green('VALID')}`); - }); - - process.exit(exitCode); -}); diff --git a/package.json b/package.json index 980d23294..0d50ab675 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "test:integration:event-replay": "concurrently \"docker compose -f docker/docker-compose.dev.postgres.yml up --force-recreate -V\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.event-replay.js --no-cache --runInBand; npm run devenv:stop\"", "test:integration:btc-faucet": "concurrently \"docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.bitcoind.yml up --force-recreate -V\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.btc-faucet.js --no-cache --runInBand; npm run devenv:stop\"", "generate:git-info": "rimraf .git-info && api-toolkit-git-info", - "generate:openapi": "node -r ts-node/register ./src/openapi-generator.ts", + "generate:openapi": "node -r ts-node/register/transpile-only ./src/openapi-generator.ts", "build": "npm run generate:git-info && rimraf ./lib && tsc -p tsconfig.build.json", "build:tests": "tsc -p tsconfig.json", "build:docs": "npm ci --prefix docs && npm run build --prefix docs && npm ci --prefix client && npm run generate:docs --prefix client", diff --git a/src/openapi-generator.ts b/src/openapi-generator.ts index c7a53b424..d45864f2d 100644 --- a/src/openapi-generator.ts +++ b/src/openapi-generator.ts @@ -17,9 +17,9 @@ async function generateOpenApiFiles() { await fastify.register(FastifySwagger, OpenApiSchemaOptions); await fastify.register(StacksApiRoutes); await fastify.ready(); - mkdirSync('./tmp', { recursive: true }); - writeFileSync('./tmp/openapi.yaml', fastify.swagger({ yaml: true })); - writeFileSync('./tmp/openapi.json', JSON.stringify(fastify.swagger(), null, 2)); + mkdirSync('./docs/.tmp', { recursive: true }); + writeFileSync('./docs/.tmp/openapi.yaml', fastify.swagger({ yaml: true })); + writeFileSync('./docs/.tmp/openapi.json', JSON.stringify(fastify.swagger(), null, 2)); await fastify.close(); } From d98091e12d2587532d77e92d79c566072377cc5b Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 7 Aug 2024 14:24:19 +0200 Subject: [PATCH 32/56] fix: several query params should be optional --- src/api/routes/address.ts | 30 +++++++++---------- src/api/routes/bns/addresses.ts | 2 +- src/api/routes/bns/names.ts | 10 +++---- src/api/routes/bns/namespaces.ts | 4 +-- src/api/routes/burnchain.ts | 10 +++---- src/api/routes/pox.ts | 2 +- src/api/routes/stx-supply.ts | 4 +-- src/api/routes/tokens.ts | 8 ++--- src/api/routes/tx.ts | 8 ++--- src/api/routes/v2/addresses.ts | 5 ++-- src/api/routes/v2/pox.ts | 13 +++++---- src/api/schemas/entities/addresses.ts | 6 ++-- src/api/schemas/params.ts | 42 +++++++++++++++------------ 13 files changed, 77 insertions(+), 67 deletions(-) diff --git a/src/api/routes/address.ts b/src/api/routes/address.ts index 200258743..250192676 100644 --- a/src/api/routes/address.ts +++ b/src/api/routes/address.ts @@ -92,7 +92,7 @@ export const AddressRoutes: FastifyPluginAsync< }), }), querystring: Type.Object({ - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, until_block: Type.Optional( Type.String({ description: @@ -160,7 +160,7 @@ export const AddressRoutes: FastifyPluginAsync< }), }), querystring: Type.Object({ - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, until_block: Type.Optional( Type.String({ description: @@ -274,7 +274,7 @@ export const AddressRoutes: FastifyPluginAsync< height: Type.Optional( Type.Integer({ description: 'Filter for transactions only at this given block height' }) ), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, until_block: Type.Optional( Type.String({ description: @@ -298,8 +298,8 @@ export const AddressRoutes: FastifyPluginAsync< const principal = req.params.principal; validatePrincipal(principal); const untilBlock = parseUntilBlockQuery(req.query.until_block, req.query.unanchored); - const limit = req.query.limit; - const offset = req.query.offset; + const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); + const offset = req.query.offset ?? 0; const response = await fastify.db.sqlTransaction(async sql => { const blockParams = getBlockParams(req.query.height, req.query.unanchored); @@ -427,7 +427,7 @@ export const AddressRoutes: FastifyPluginAsync< height: Type.Optional( Type.Integer({ description: 'Filter for transactions only at this given block height' }) ), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, until_block: Type.Optional( Type.String({ description: @@ -468,8 +468,8 @@ export const AddressRoutes: FastifyPluginAsync< blockHeight = await getBlockHeight(untilBlock, req.query.unanchored, fastify.db); } - const limit = req.query.limit; - const offset = req.query.offset; + const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); + const offset = req.query.offset ?? 0; const { results: txResults, total } = await fastify.db.getAddressTxsWithAssetTransfers({ stxAddress: stxAddress, limit, @@ -549,7 +549,7 @@ export const AddressRoutes: FastifyPluginAsync< querystring: Type.Object({ limit: LimitParam(ResourceType.Event), offset: OffsetParam(), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, until_block: Type.Optional( Type.String({ description: @@ -572,8 +572,8 @@ export const AddressRoutes: FastifyPluginAsync< validatePrincipal(stxAddress); const untilBlock = parseUntilBlockQuery(req.query.until_block, req.query.unanchored); - const limit = req.query.limit; - const offset = req.query.offset; + const limit = getPagingQueryLimit(ResourceType.Event, req.query.limit); + const offset = req.query.offset ?? 0; const response = await fastify.db.sqlTransaction(async sql => { const blockHeight = await getBlockHeight(untilBlock, req.query.unanchored, fastify.db); @@ -613,7 +613,7 @@ export const AddressRoutes: FastifyPluginAsync< height: Type.Optional( Type.Integer({ description: 'Filter for transactions only at this given block height' }) ), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, until_block: Type.Optional( Type.String({ description: @@ -714,7 +714,7 @@ export const AddressRoutes: FastifyPluginAsync< querystring: Type.Object({ limit: LimitParam(ResourceType.Tx), offset: OffsetParam(), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, }), response: { 200: PaginatedResponse(MempoolTransactionSchema, { @@ -724,8 +724,8 @@ export const AddressRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - const limit = req.query.limit; - const offset = req.query.offset; + const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); + const offset = req.query.offset ?? 0; const address = req.params.principal; if (!isValidPrincipal(address)) { throw new InvalidRequestError( diff --git a/src/api/routes/bns/addresses.ts b/src/api/routes/bns/addresses.ts index abff07cf4..e2f1ccf9e 100644 --- a/src/api/routes/bns/addresses.ts +++ b/src/api/routes/bns/addresses.ts @@ -58,7 +58,7 @@ export const BnsAddressRoutes: FastifyPluginAsync< if (!SUPPORTED_BLOCKCHAINS.includes(blockchain)) { return await reply.status(404).send({ error: 'Unsupported blockchain' }); } - const includeUnanchored = req.query.unanchored; + const includeUnanchored = req.query.unanchored ?? false; const namesByAddress = await fastify.db.getNamesByAddressList({ address: address, includeUnanchored, diff --git a/src/api/routes/bns/names.ts b/src/api/routes/bns/names.ts index dce779fcc..b85f76fd7 100644 --- a/src/api/routes/bns/names.ts +++ b/src/api/routes/bns/names.ts @@ -55,7 +55,7 @@ export const BnsNameRoutes: FastifyPluginAsync< }, async (req, reply) => { const { name, zoneFileHash } = req.params; - const includeUnanchored = req.query.unanchored; + const includeUnanchored = req.query.unanchored ?? false; const zonefile = await fastify.db.getHistoricalZoneFile({ name: name, zoneFileHash: zoneFileHash, @@ -104,7 +104,7 @@ export const BnsNameRoutes: FastifyPluginAsync< }, async (req, reply) => { const { name } = req.params; - const includeUnanchored = req.query.unanchored; + const includeUnanchored = req.query.unanchored ?? false; const subdomainsList = await fastify.db.getSubdomainsListInName({ name, includeUnanchored, @@ -161,7 +161,7 @@ export const BnsNameRoutes: FastifyPluginAsync< }, async (req, reply) => { const { name } = req.params; - const includeUnanchored = req.query.unanchored; + const includeUnanchored = req.query.unanchored ?? false; const zonefile = await fastify.db.getLatestZoneFile({ name: name, includeUnanchored }); if (zonefile.found) { await reply.send(zonefile.result); @@ -210,7 +210,7 @@ export const BnsNameRoutes: FastifyPluginAsync< }, async (req, reply) => { const page = parsePagingQueryInput(req.query.page ?? 0); - const includeUnanchored = req.query.unanchored; + const includeUnanchored = req.query.unanchored ?? false; const { results } = await fastify.db.getNamesList({ page, includeUnanchored }); if (results.length === 0 && req.query.page) { await reply.status(400).send(BnsErrors.InvalidPageNumber); @@ -273,7 +273,7 @@ export const BnsNameRoutes: FastifyPluginAsync< }, async (req, reply) => { const { name } = req.params; - const includeUnanchored = req.query.unanchored; + const includeUnanchored = req.query.unanchored ?? false; await fastify.db .sqlTransaction(async sql => { diff --git a/src/api/routes/bns/namespaces.ts b/src/api/routes/bns/namespaces.ts index f0f261d2d..ccee4dc43 100644 --- a/src/api/routes/bns/namespaces.ts +++ b/src/api/routes/bns/namespaces.ts @@ -34,7 +34,7 @@ export const BnsNamespaceRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - const includeUnanchored = req.query.unanchored; + const includeUnanchored = req.query.unanchored ?? false; const { results } = await fastify.db.getNamespaceList({ includeUnanchored }); const response = { namespaces: results, @@ -86,7 +86,7 @@ export const BnsNamespaceRoutes: FastifyPluginAsync< async (req, reply) => { const { tld } = req.params; const page = parsePagingQueryInput(req.query.page ?? 0); - const includeUnanchored = req.query.unanchored; + const includeUnanchored = req.query.unanchored ?? false; await fastify.db .sqlTransaction(async sql => { const response = await fastify.db.getNamespace({ namespace: tld, includeUnanchored }); diff --git a/src/api/routes/burnchain.ts b/src/api/routes/burnchain.ts index c4168a42e..79da0fd85 100644 --- a/src/api/routes/burnchain.ts +++ b/src/api/routes/burnchain.ts @@ -1,6 +1,6 @@ import { isValidBitcoinAddress, tryConvertC32ToBtc } from '../../helpers'; import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; -import { ResourceType } from '../pagination'; +import { getPagingQueryLimit, ResourceType } from '../pagination'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; @@ -41,7 +41,7 @@ export const BurnchainRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - const limit = req.query.limit; + const limit = getPagingQueryLimit(ResourceType.Burnchain, req.query.limit); const offset = req.query.offset ?? 0; const queryResults = await fastify.db.getBurnchainRewardSlotHolders({ offset, limit }); @@ -91,7 +91,7 @@ export const BurnchainRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - const limit = req.query.limit; + const limit = getPagingQueryLimit(ResourceType.Burnchain, req.query.limit); const offset = req.query.offset ?? 0; const { address } = req.params; @@ -163,7 +163,7 @@ export const BurnchainRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - const limit = req.query.limit; + const limit = getPagingQueryLimit(ResourceType.Burnchain, req.query.limit); const offset = req.query.offset ?? 0; const queryResults = await fastify.db.getBurnchainRewards({ offset, limit }); @@ -216,7 +216,7 @@ export const BurnchainRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - const limit = req.query.limit; + const limit = getPagingQueryLimit(ResourceType.Burnchain, req.query.limit); const offset = req.query.offset ?? 0; const { address } = req.params; diff --git a/src/api/routes/pox.ts b/src/api/routes/pox.ts index be5128113..7f123c892 100644 --- a/src/api/routes/pox.ts +++ b/src/api/routes/pox.ts @@ -176,7 +176,7 @@ export const PoxRoutes: FastifyPluginAsync< }) ), height: Type.Optional(Type.Integer({ minimum: 1 })), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, }), response: { 200: PaginatedResponse(PoolDelegationSchema), diff --git a/src/api/routes/stx-supply.ts b/src/api/routes/stx-supply.ts index 1d3ed82ec..9d19666ca 100644 --- a/src/api/routes/stx-supply.ts +++ b/src/api/routes/stx-supply.ts @@ -60,7 +60,7 @@ export const StxSupplyRoutes: FastifyPluginAsync< examples: [777678], }) ), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, }), response: { 200: Type.Object( @@ -178,7 +178,7 @@ export const StxSupplyRoutes: FastifyPluginAsync< examples: [777678], }) ), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, }), response: { 200: Type.Object( diff --git a/src/api/routes/tokens.ts b/src/api/routes/tokens.ts index ec1ab813f..42f4e7867 100644 --- a/src/api/routes/tokens.ts +++ b/src/api/routes/tokens.ts @@ -52,7 +52,7 @@ export const TokenRoutes: FastifyPluginAsync< ), limit: LimitParam(ResourceType.Token, 'Limit', 'max number of tokens to fetch'), offset: OffsetParam('Offset', 'index of first tokens to fetch'), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, tx_metadata: Type.Boolean({ default: false, description: @@ -162,7 +162,7 @@ export const TokenRoutes: FastifyPluginAsync< }), limit: LimitParam(ResourceType.Token, 'Limit', 'max number of events to fetch'), offset: OffsetParam('Offset', 'index of first event to fetch'), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, tx_metadata: Type.Boolean({ default: false, description: @@ -273,7 +273,7 @@ export const TokenRoutes: FastifyPluginAsync< }), limit: LimitParam(ResourceType.Token, 'Limit', 'max number of events to fetch'), offset: OffsetParam('Offset', 'index of first event to fetch'), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, tx_metadata: Type.Boolean({ default: false, description: @@ -408,7 +408,7 @@ export const TokenRoutes: FastifyPluginAsync< }, async (req, reply) => { const token = req.params.token; - const limit = req.query.limit; + const limit = getPagingQueryLimit(ResourceType.TokenHolders, req.query.limit); const offset = req.query.offset ?? 0; const { results, total, totalSupply } = await fastify.db.getTokenHolders({ token, diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index 1f70506b2..6dbf74a45 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -76,7 +76,7 @@ export const TxRoutes: FastifyPluginAsync< type: Type.Optional( Type.Union([Type.Array(TransactionTypeSchema), TransactionTypeStringSchema]) ), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, order: Type.Optional(Type.Enum({ asc: 'asc', desc: 'desc' })), sort_by: Type.Optional( Type.Enum( @@ -225,7 +225,7 @@ export const TxRoutes: FastifyPluginAsync< ]), event_limit: LimitParam(ResourceType.Tx), event_offset: OffsetParam(), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, }), response: { 200: TransactionSearchResponseSchema, @@ -275,7 +275,7 @@ export const TxRoutes: FastifyPluginAsync< address: Type.Optional(AddressParamSchema), order_by: Type.Optional(MempoolOrderByParamSchema), order: Type.Optional(OrderParamSchema), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, offset: OffsetParam(), limit: LimitParam(ResourceType.Tx), }), @@ -515,7 +515,7 @@ export const TxRoutes: FastifyPluginAsync< querystring: Type.Object({ event_limit: LimitParam(ResourceType.Tx), event_offset: OffsetParam(), - unanchored: Type.Optional(UnanchoredParamSchema), + unanchored: UnanchoredParamSchema, }), response: { 200: Type.Union([TransactionSchema, MempoolTransactionSchema]), diff --git a/src/api/routes/v2/addresses.ts b/src/api/routes/v2/addresses.ts index 7b56e8be4..62410b9cc 100644 --- a/src/api/routes/v2/addresses.ts +++ b/src/api/routes/v2/addresses.ts @@ -6,7 +6,7 @@ import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { Server } from 'node:http'; import { LimitParam, OffsetParam } from '../../schemas/params'; -import { ResourceType } from '../../pagination'; +import { getPagingQueryLimit, ResourceType } from '../../pagination'; import { PaginatedResponse } from '../../schemas/util'; import { AddressTransaction, @@ -93,8 +93,9 @@ export const AddressRoutesV2: FastifyPluginAsync< try { const { limit, offset, results, total } = await fastify.db.v2.getAddressTransactionEvents({ + limit: getPagingQueryLimit(ResourceType.Tx, query.limit), + offset: query.offset ?? 0, ...params, - ...query, }); const transfers: AddressTransactionEvent[] = results.map(r => parseDbAddressTransactionTransfer(r) diff --git a/src/api/routes/v2/pox.ts b/src/api/routes/v2/pox.ts index 40fd9bfe2..9f7171d20 100644 --- a/src/api/routes/v2/pox.ts +++ b/src/api/routes/v2/pox.ts @@ -7,7 +7,7 @@ import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { Server } from 'node:http'; import { LimitParam, OffsetParam } from '../../schemas/params'; -import { ResourceType } from '../../pagination'; +import { getPagingQueryLimit, ResourceType } from '../../pagination'; import { PaginatedResponse } from '../../schemas/util'; import { PoxCycle, @@ -110,8 +110,9 @@ export const PoxRoutesV2: FastifyPluginAsync< try { const { limit, offset, results, total } = await fastify.db.v2.getPoxCycleSigners({ - ...params, - ...query, + cycle_number: params.cycle_number, + limit: getPagingQueryLimit(ResourceType.Signer, query.limit), + offset: query.offset ?? 0, }); const isMainnet = getIsMainnet(); const signers: PoxSigner[] = results.map(r => parseDbPoxSigner(r, isMainnet)); @@ -202,8 +203,10 @@ export const PoxRoutesV2: FastifyPluginAsync< try { const { limit, offset, results, total } = await fastify.db.v2.getPoxCycleSignerStackers({ - ...params, - ...query, + cycle_number: params.cycle_number, + signer_key: params.signer_key, + limit: getPagingQueryLimit(ResourceType.Stacker, query.limit), + offset: query.offset ?? 0, }); const stackers: PoxStacker[] = results.map(r => parseDbPoxSignerStacker(r)); await reply.send({ diff --git a/src/api/schemas/entities/addresses.ts b/src/api/schemas/entities/addresses.ts index 2c449afa6..1d1f99b15 100644 --- a/src/api/schemas/entities/addresses.ts +++ b/src/api/schemas/entities/addresses.ts @@ -188,7 +188,7 @@ export const AddressTransactionEventSchema = Type.Union( type: Type.Literal('stx'), event_index: Type.Integer(), data: Type.Object({ - type: Type.Enum(TransactionEventAssetTypeSchema), + type: TransactionEventAssetTypeSchema, amount: Type.String({ description: 'Amount transferred in micro-STX as an integer string.', }), @@ -208,7 +208,7 @@ export const AddressTransactionEventSchema = Type.Union( type: Type.Literal('ft'), event_index: Type.Integer(), data: Type.Object({ - type: Type.Enum(TransactionEventAssetTypeSchema), + type: TransactionEventAssetTypeSchema, amount: Type.String({ description: 'Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals.', @@ -232,7 +232,7 @@ export const AddressTransactionEventSchema = Type.Union( type: Type.Literal('nft'), event_index: Type.Integer(), data: Type.Object({ - type: Type.Enum(TransactionEventAssetTypeSchema), + type: TransactionEventAssetTypeSchema, asset_identifier: Type.String({ description: 'Non Fungible Token asset identifier.', }), diff --git a/src/api/schemas/params.ts b/src/api/schemas/params.ts index ccaa55d81..44f97506a 100644 --- a/src/api/schemas/params.ts +++ b/src/api/schemas/params.ts @@ -2,27 +2,33 @@ import { Type } from '@sinclair/typebox'; import { pagingQueryLimits, ResourceType } from '../pagination'; export const OffsetParam = (title?: string, description?: string) => - Type.Integer({ - minimum: 0, - default: 0, - title: title ?? 'Offset', - description: description ?? 'Result offset', - }); + Type.Optional( + Type.Integer({ + minimum: 0, + default: 0, + title: title ?? 'Offset', + description: description ?? 'Result offset', + }) + ); export const LimitParam = (resource: ResourceType, title?: string, description?: string) => - Type.Integer({ - minimum: 0, - default: pagingQueryLimits[resource].defaultLimit, - maximum: pagingQueryLimits[resource].maxLimit, - title: title ?? 'Limit', - description: description ?? 'Results per page', - }); + Type.Optional( + Type.Integer({ + minimum: 0, + default: pagingQueryLimits[resource].defaultLimit, + maximum: pagingQueryLimits[resource].maxLimit, + title: title ?? 'Limit', + description: description ?? 'Results per page', + }) + ); -export const UnanchoredParamSchema = Type.Boolean({ - default: false, - description: 'Include data from unanchored (i.e. unconfirmed) microblocks', - examples: [true], -}); +export const UnanchoredParamSchema = Type.Optional( + Type.Boolean({ + default: false, + description: 'Include data from unanchored (i.e. unconfirmed) microblocks', + examples: [true], + }) +); export const TransactionIdParamSchema = Type.String({ pattern: '^(0x)?[a-fA-F0-9]{64}$', From 1aeefb641120b88acff078415a1e671058e60523 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 7 Aug 2024 14:38:04 +0200 Subject: [PATCH 33/56] fix: only use a GET route for extended status --- src/api/routes/status.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/api/routes/status.ts b/src/api/routes/status.ts index f70c39850..00821d8db 100644 --- a/src/api/routes/status.ts +++ b/src/api/routes/status.ts @@ -10,9 +10,7 @@ export const StatusRoutes: FastifyPluginAsync< Server, TypeBoxTypeProvider > = async fastify => { - fastify.route({ - method: ['GET', 'POST'], - url: '/extended', + fastify.get('/extended', { schema: { operationId: 'get_status', summary: 'API status', From 3c27cb18d3b849fe28efdff21c7908f394c8f630 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 7 Aug 2024 18:24:23 +0200 Subject: [PATCH 34/56] chore: simpify typing for TransactionSchema and MempoolTransactionSchema --- .../schemas/entities/mempool-transactions.ts | 143 +++-- src/api/schemas/entities/transactions.ts | 598 +++++++++--------- 2 files changed, 385 insertions(+), 356 deletions(-) diff --git a/src/api/schemas/entities/mempool-transactions.ts b/src/api/schemas/entities/mempool-transactions.ts index 1da006b46..2a0fd33b8 100644 --- a/src/api/schemas/entities/mempool-transactions.ts +++ b/src/api/schemas/entities/mempool-transactions.ts @@ -1,87 +1,92 @@ import { Static, Type } from '@sinclair/typebox'; import { - BaseTransactionSchema, - CoinbaseTransactionMetadataSchema, - ContractCallTransactionMetadataSchema, - PoisonMicroblockTransactionMetadataSchema, - SmartContractTransactionMetadataSchema, - TenureChangeTransactionMetadataSchema, - TokenTransferTransactionMetadataSchema, + BaseTransactionSchemaProperties, + CoinbaseTransactionMetadataProperties, + ContractCallTransactionMetadataProperties, + PoisonMicroblockTransactionMetadataProperties, + SmartContractTransactionMetadataProperties, + TenureChangeTransactionMetadataProperties, + TokenTransferTransactionMetadataProperties, } from './transactions'; import { Nullable } from '../util'; -const AbstractMempoolTransactionSchema = Type.Intersect([ - BaseTransactionSchema, - Type.Object( +const AbstractMempoolTransactionProperties = { + ...BaseTransactionSchemaProperties, + tx_status: Type.Union( + [ + Type.Literal('pending'), + Type.Literal('dropped_replace_by_fee'), + Type.Literal('dropped_replace_across_fork'), + Type.Literal('dropped_too_expensive'), + Type.Literal('dropped_stale_garbage_collect'), + Type.Literal('dropped_problematic'), + ], { - tx_status: Type.Union( - [ - Type.Literal('pending'), - Type.Literal('dropped_replace_by_fee'), - Type.Literal('dropped_replace_across_fork'), - Type.Literal('dropped_too_expensive'), - Type.Literal('dropped_stale_garbage_collect'), - Type.Literal('dropped_problematic'), - ], - { - description: 'Status of the transaction', - } - ), - receipt_time: Type.Number({ - description: - 'A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.', - }), - receipt_time_iso: Type.String({ - description: - 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.', - }), - }, - { - title: 'AbstractMempoolTransaction', - description: - 'Abstract transaction. This schema makes up all properties common between all Stacks 2.0 transaction types', + description: 'Status of the transaction', } ), -]); + receipt_time: Type.Number({ + description: + 'A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.', + }), + receipt_time_iso: Type.String({ + description: + 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.', + }), +}; + +const AbstractMempoolTransactionSchema = Type.Object({ + ...AbstractMempoolTransactionProperties, +}); export type AbstractMempoolTransaction = Static; -export const TokenTransferMempoolTransactionSchema = Type.Intersect([ - AbstractMempoolTransactionSchema, - TokenTransferTransactionMetadataSchema, -]); -export type TokenTransferMempoolTransaction = Static; +export const TokenTransferMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...TokenTransferTransactionMetadataProperties, + }, + { title: 'TokenTransferMempoolTransaction' } +); -export const SmartContractMempoolTransactionSchema = Type.Intersect([ - AbstractMempoolTransactionSchema, - SmartContractTransactionMetadataSchema, -]); -export type SmartContractMempoolTransaction = Static; +export const SmartContractMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...SmartContractTransactionMetadataProperties, + }, + { title: 'SmartContractMempoolTransaction' } +); -export const ContractCallMempoolTransactionSchema = Type.Intersect([ - AbstractMempoolTransactionSchema, - ContractCallTransactionMetadataSchema, -]); -export type ContractCallMempoolTransaction = Static; +export const ContractCallMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...ContractCallTransactionMetadataProperties, + }, + { title: 'ContractCallMempoolTransaction' } +); -export const PoisonMicroblockMempoolTransactionSchema = Type.Intersect([ - AbstractMempoolTransactionSchema, - PoisonMicroblockTransactionMetadataSchema, -]); -export type PoisonMicroblockMempoolTransaction = Static< - typeof PoisonMicroblockMempoolTransactionSchema ->; +export const PoisonMicroblockMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...PoisonMicroblockTransactionMetadataProperties, + }, + { title: 'PoisonMicroblockMempoolTransaction' } +); -export const CoinbaseMempoolTransactionSchema = Type.Intersect([ - AbstractMempoolTransactionSchema, - CoinbaseTransactionMetadataSchema, -]); -export type CoinbaseMempoolTransaction = Static; +export const CoinbaseMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...CoinbaseTransactionMetadataProperties, + }, + { title: 'CoinbaseMempoolTransaction' } +); -export const TenureChangeMempoolTransactionSchema = Type.Intersect([ - AbstractMempoolTransactionSchema, - TenureChangeTransactionMetadataSchema, -]); -export type TenureChangeMempoolTransaction = Static; +export const TenureChangeMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...TenureChangeTransactionMetadataProperties, + }, + { title: 'TenureChangeMempoolTransaction' } +); export const MempoolTransactionSchema = Type.Union([ TokenTransferMempoolTransactionSchema, diff --git a/src/api/schemas/entities/transactions.ts b/src/api/schemas/entities/transactions.ts index fa0c2496c..e30c1048a 100644 --- a/src/api/schemas/entities/transactions.ts +++ b/src/api/schemas/entities/transactions.ts @@ -19,164 +19,165 @@ export const TransactionTypeStringSchema = CommaStringList(TransactionType, { examples: ['coinbase,token_transfer,smart_contract'], }); -export const BaseTransactionSchema = Type.Object( - { - tx_id: Type.String({ - description: 'Transaction ID', - }), - nonce: Type.Integer({ - description: - "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", - }), - fee_rate: Type.String({ - description: 'Transaction fee as Integer string (64-bit unsigned integer).', - }), - sender_address: Type.String({ - description: 'Address of the transaction initiator', - }), - sponsor_nonce: Type.Optional(Type.Integer()), - sponsored: Type.Boolean({ - description: 'Denotes whether the originating account is the same as the paying account', - }), - sponsor_address: Type.Optional(Type.String()), - post_condition_mode: PostConditionModeSchema, - post_conditions: Type.Array(PostConditionSchema), - anchor_mode: Type.Union( - [Type.Literal('on_chain_only'), Type.Literal('off_chain_only'), Type.Literal('any')], - { - description: - '`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.', - } - ), - }, - { - title: 'BaseTransaction', +export const BaseTransactionSchemaProperties = { + tx_id: Type.String({ + description: 'Transaction ID', + }), + nonce: Type.Integer({ description: - 'Transaction properties that are available from a raw serialized transactions. These are available for transactions in the mempool as well as mined transactions.', - } -); + "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + }), + fee_rate: Type.String({ + description: 'Transaction fee as Integer string (64-bit unsigned integer).', + }), + sender_address: Type.String({ + description: 'Address of the transaction initiator', + }), + sponsor_nonce: Type.Optional(Type.Integer()), + sponsored: Type.Boolean({ + description: 'Denotes whether the originating account is the same as the paying account', + }), + sponsor_address: Type.Optional(Type.String()), + post_condition_mode: PostConditionModeSchema, + post_conditions: Type.Array(PostConditionSchema), + anchor_mode: Type.Union( + [Type.Literal('on_chain_only'), Type.Literal('off_chain_only'), Type.Literal('any')], + { + description: + '`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.', + } + ), +}; + +const BaseTransactionSchema = Type.Object(BaseTransactionSchemaProperties, { + title: 'BaseTransaction', + description: + 'Transaction properties that are available from a raw serialized transactions. These are available for transactions in the mempool as well as mined transactions.', +}); export type BaseTransaction = Static; -const AbstractTransactionSchema = Type.Intersect([ - BaseTransactionSchema, - Type.Object({ - block_hash: Type.String({ - description: 'Hash of the blocked this transactions was associated with', - }), - block_height: Type.Integer({ - description: 'Height of the block this transactions was associated with', - }), - block_time: Type.Number({ - description: 'Unix timestamp (in seconds) indicating when this block was mined.', - }), - block_time_iso: Type.String({ - description: 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.', - }), - burn_block_time: Type.Integer({ - description: 'Unix timestamp (in seconds) indicating when this block was mined.', - }), - burn_block_height: Type.Integer({ - description: 'Height of the anchor burn block.', - }), - burn_block_time_iso: Type.String({ - description: - 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.', - }), - parent_burn_block_time: Type.Integer({ - description: 'Unix timestamp (in seconds) indicating when this parent block was mined', - }), - parent_burn_block_time_iso: Type.String({ - description: - 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.', - }), - canonical: Type.Boolean({ - description: 'Set to `true` if block corresponds to the canonical chain tip', - }), - tx_index: Type.Integer({ - description: - 'Index of the transaction, indicating the order. Starts at `0` and increases with each transaction', - }), - tx_status: Type.Union( - [ - Type.Literal('success'), - Type.Literal('abort_by_response'), - Type.Literal('abort_by_post_condition'), - ], - { - description: 'Status of the transaction', - } - ), - tx_result: Type.Object( - { - hex: Type.String({ - description: 'Hex string representing the value fo the transaction result', - }), - repr: Type.String({ - description: 'Readable string of the transaction result', - }), - }, - { - description: - 'Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.', - additionalProperties: false, - } - ), - event_count: Type.Integer({ - description: 'Number of transaction events', - }), - parent_block_hash: Type.String({ - description: 'Hash of the previous block.', - }), - is_unanchored: Type.Boolean({ - description: - 'True if the transaction is included in a microblock that has not been confirmed by an anchor block.', - }), - microblock_hash: Type.String({ - description: - 'The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.', - }), - microblock_sequence: Type.Integer({ - description: - 'The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).', - }), - microblock_canonical: Type.Boolean({ +const AbstractTransactionProperties = { + ...BaseTransactionSchemaProperties, + block_hash: Type.String({ + description: 'Hash of the blocked this transactions was associated with', + }), + block_height: Type.Integer({ + description: 'Height of the block this transactions was associated with', + }), + block_time: Type.Number({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + block_time_iso: Type.String({ + description: 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.', + }), + burn_block_time: Type.Integer({ + description: 'Unix timestamp (in seconds) indicating when this block was mined.', + }), + burn_block_height: Type.Integer({ + description: 'Height of the anchor burn block.', + }), + burn_block_time_iso: Type.String({ + description: + 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.', + }), + parent_burn_block_time: Type.Integer({ + description: 'Unix timestamp (in seconds) indicating when this parent block was mined', + }), + parent_burn_block_time_iso: Type.String({ + description: + 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.', + }), + canonical: Type.Boolean({ + description: 'Set to `true` if block corresponds to the canonical chain tip', + }), + tx_index: Type.Integer({ + description: + 'Index of the transaction, indicating the order. Starts at `0` and increases with each transaction', + }), + tx_status: Type.Union( + [ + Type.Literal('success'), + Type.Literal('abort_by_response'), + Type.Literal('abort_by_post_condition'), + ], + { + description: 'Status of the transaction', + } + ), + tx_result: Type.Object( + { + hex: Type.String({ + description: 'Hex string representing the value fo the transaction result', + }), + repr: Type.String({ + description: 'Readable string of the transaction result', + }), + }, + { description: - 'Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.', - }), - execution_cost_read_count: Type.Integer({ - description: 'Execution cost read count.', - }), - execution_cost_read_length: Type.Integer({ - description: 'Execution cost read length.', - }), - execution_cost_runtime: Type.Integer({ - description: 'Execution cost runtime.', - }), - execution_cost_write_count: Type.Integer({ - description: 'Execution cost write count.', - }), - execution_cost_write_length: Type.Integer({ - description: 'Execution cost write length.', - }), - events: Type.Array(TransactionEventSchema), + 'Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.', + additionalProperties: false, + } + ), + event_count: Type.Integer({ + description: 'Number of transaction events', }), -]); + parent_block_hash: Type.String({ + description: 'Hash of the previous block.', + }), + is_unanchored: Type.Boolean({ + description: + 'True if the transaction is included in a microblock that has not been confirmed by an anchor block.', + }), + microblock_hash: Type.String({ + description: + 'The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.', + }), + microblock_sequence: Type.Integer({ + description: + 'The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).', + }), + microblock_canonical: Type.Boolean({ + description: + 'Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.', + }), + execution_cost_read_count: Type.Integer({ + description: 'Execution cost read count.', + }), + execution_cost_read_length: Type.Integer({ + description: 'Execution cost read length.', + }), + execution_cost_runtime: Type.Integer({ + description: 'Execution cost runtime.', + }), + execution_cost_write_count: Type.Integer({ + description: 'Execution cost write count.', + }), + execution_cost_write_length: Type.Integer({ + description: 'Execution cost write length.', + }), + events: Type.Array(TransactionEventSchema), +}; +const AbstractTransactionSchema = Type.Object({ + ...AbstractTransactionProperties, +}); export type AbstractTransaction = Static; -export const TokenTransferTransactionMetadataSchema = Type.Object( - { - tx_type: Type.Literal('token_transfer'), - token_transfer: Type.Object({ - recipient_address: Type.String(), - amount: Type.String({ - description: 'Transfer amount as Integer string (64-bit unsigned integer)', - }), - memo: Type.String({ - description: - 'Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)', - }), +export const TokenTransferTransactionMetadataProperties = { + tx_type: Type.Literal('token_transfer'), + token_transfer: Type.Object({ + recipient_address: Type.String(), + amount: Type.String({ + description: 'Transfer amount as Integer string (64-bit unsigned integer)', + }), + memo: Type.String({ + description: + 'Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)', }), - }, + }), +}; +export const TokenTransferTransactionMetadataSchema = Type.Object( + TokenTransferTransactionMetadataProperties, { title: 'TokenTransferTransactionMetadata', description: 'Metadata associated with token-transfer type transactions', @@ -186,24 +187,25 @@ export type TokenTransferTransactionMetadata = Static< typeof TokenTransferTransactionMetadataSchema >; -export const SmartContractTransactionMetadataSchema = Type.Object( - { - tx_type: Type.Literal('smart_contract'), - smart_contract: Type.Object({ - clarity_version: Nullable( - Type.Number({ - description: - 'The Clarity version of the contract, only specified for versioned contract transactions, otherwise null', - }) - ), - contract_id: Type.String({ - description: 'Contract identifier formatted as `.`', - }), - source_code: Type.String({ - description: 'Clarity code of the smart contract being deployed', - }), +export const SmartContractTransactionMetadataProperties = { + tx_type: Type.Literal('smart_contract'), + smart_contract: Type.Object({ + clarity_version: Nullable( + Type.Number({ + description: + 'The Clarity version of the contract, only specified for versioned contract transactions, otherwise null', + }) + ), + contract_id: Type.String({ + description: 'Contract identifier formatted as `.`', }), - }, + source_code: Type.String({ + description: 'Clarity code of the smart contract being deployed', + }), + }), +}; +export const SmartContractTransactionMetadataSchema = Type.Object( + SmartContractTransactionMetadataProperties, { title: 'SmartContractTransactionMetadata', description: @@ -214,38 +216,39 @@ export type SmartContractTransactionMetadata = Static< typeof SmartContractTransactionMetadataSchema >; -export const ContractCallTransactionMetadataSchema = Type.Object( - { - tx_type: Type.Literal('contract_call'), - contract_call: Type.Object({ - contract_id: Type.String({ - description: 'Contract identifier formatted as `.`', - }), - function_name: Type.String({ - description: 'Name of the Clarity function to be invoked', - }), - function_signature: Type.String({ - description: - 'Function definition, including function name and type as well as parameter names and types', - }), - function_args: Type.Optional( - Type.Array( - Type.Object( - { - hex: Type.String(), - repr: Type.String(), - name: Type.String(), - type: Type.String(), - }, - { - additionalProperties: false, - description: 'List of arguments used to invoke the function', - } - ) - ) - ), +export const ContractCallTransactionMetadataProperties = { + tx_type: Type.Literal('contract_call'), + contract_call: Type.Object({ + contract_id: Type.String({ + description: 'Contract identifier formatted as `.`', }), - }, + function_name: Type.String({ + description: 'Name of the Clarity function to be invoked', + }), + function_signature: Type.String({ + description: + 'Function definition, including function name and type as well as parameter names and types', + }), + function_args: Type.Optional( + Type.Array( + Type.Object( + { + hex: Type.String(), + repr: Type.String(), + name: Type.String(), + type: Type.String(), + }, + { + additionalProperties: false, + description: 'List of arguments used to invoke the function', + } + ) + ) + ), + }), +}; +export const ContractCallTransactionMetadataSchema = Type.Object( + ContractCallTransactionMetadataProperties, { title: 'ContractCallTransactionMetadata', description: 'Metadata associated with a contract-call type transaction', @@ -253,18 +256,19 @@ export const ContractCallTransactionMetadataSchema = Type.Object( ); export type ContractCallTransactionMetadata = Static; -export const PoisonMicroblockTransactionMetadataSchema = Type.Object( - { - tx_type: Type.Literal('poison_microblock'), - poison_microblock: Type.Object({ - microblock_header_1: Type.String({ - description: 'Hex encoded microblock header', - }), - microblock_header_2: Type.String({ - description: 'Hex encoded microblock header', - }), +export const PoisonMicroblockTransactionMetadataProperties = { + tx_type: Type.Literal('poison_microblock'), + poison_microblock: Type.Object({ + microblock_header_1: Type.String({ + description: 'Hex encoded microblock header', }), - }, + microblock_header_2: Type.String({ + description: 'Hex encoded microblock header', + }), + }), +}; +export const PoisonMicroblockTransactionMetadataSchema = Type.Object( + PoisonMicroblockTransactionMetadataProperties, { title: 'PoisonMicroblockTransactionMetadata', description: 'Metadata associated with a poison-microblock type transaction', @@ -274,31 +278,32 @@ export type PoisonMicroblockTransactionMetadata = Static< typeof PoisonMicroblockTransactionMetadataSchema >; +export const CoinbaseTransactionMetadataProperties = { + tx_type: Type.Literal('coinbase'), + coinbase_payload: Type.Object({ + data: Type.String({ + type: 'string', + description: "Hex encoded 32-byte scratch space for block leader's use", + }), + alt_recipient: Type.Optional( + Nullable( + Type.String({ + description: + 'A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.', + }) + ) + ), + vrf_proof: Type.Optional( + Nullable( + Type.String({ + description: 'Hex encoded 80-byte VRF proof', + }) + ) + ), + }), +}; export const CoinbaseTransactionMetadataSchema = Type.Object( - { - tx_type: Type.Literal('coinbase'), - coinbase_payload: Type.Object({ - data: Type.String({ - type: 'string', - description: "Hex encoded 32-byte scratch space for block leader's use", - }), - alt_recipient: Type.Optional( - Nullable( - Type.String({ - description: - 'A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.', - }) - ) - ), - vrf_proof: Type.Optional( - Nullable( - Type.String({ - description: 'Hex encoded 80-byte VRF proof', - }) - ) - ), - }), - }, + CoinbaseTransactionMetadataProperties, { title: 'CoinbaseTransaction', description: 'Metadata associated with a coinbase type transaction', @@ -306,37 +311,38 @@ export const CoinbaseTransactionMetadataSchema = Type.Object( ); export type CoinbaseTransactionMetadata = Static; -export const TenureChangeTransactionMetadataSchema = Type.Object( - { - tx_type: Type.Literal('tenure_change'), - tenure_change_payload: Type.Object({ - tenure_consensus_hash: Type.String({ - description: - 'Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.', - }), - prev_tenure_consensus_hash: Type.String({ - description: - 'Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.', - }), - burn_view_consensus_hash: Type.String({ - description: - 'Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.', - }), - previous_tenure_end: Type.String({ - description: '(Hex string) Stacks Block hash', - }), - previous_tenure_blocks: Type.Integer({ - description: 'The number of blocks produced in the previous tenure.', - }), - cause: Type.Union([Type.Literal('block_found'), Type.Literal('extended')], { - description: - 'Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.', - }), - pubkey_hash: Type.String({ - description: '(Hex string) The ECDSA public key hash of the current tenure.', - }), +export const TenureChangeTransactionMetadataProperties = { + tx_type: Type.Literal('tenure_change'), + tenure_change_payload: Type.Object({ + tenure_consensus_hash: Type.String({ + description: + 'Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.', }), - }, + prev_tenure_consensus_hash: Type.String({ + description: + 'Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.', + }), + burn_view_consensus_hash: Type.String({ + description: + 'Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.', + }), + previous_tenure_end: Type.String({ + description: '(Hex string) Stacks Block hash', + }), + previous_tenure_blocks: Type.Integer({ + description: 'The number of blocks produced in the previous tenure.', + }), + cause: Type.Union([Type.Literal('block_found'), Type.Literal('extended')], { + description: + 'Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.', + }), + pubkey_hash: Type.String({ + description: '(Hex string) The ECDSA public key hash of the current tenure.', + }), + }), +}; +export const TenureChangeTransactionMetadataSchema = Type.Object( + TenureChangeTransactionMetadataProperties, { title: 'TenureChangeTransaction', description: 'Describes representation of a Type 7 Stacks transaction: Tenure Change', @@ -344,35 +350,53 @@ export const TenureChangeTransactionMetadataSchema = Type.Object( ); export type TenureChangeTransactionMetadata = Static; -export const TokenTransferTransactionSchema = Type.Intersect([ - AbstractTransactionSchema, - TokenTransferTransactionMetadataSchema, -]); +export const TokenTransferTransactionSchema = Type.Object( + { + ...AbstractTransactionProperties, + ...TokenTransferTransactionMetadataProperties, + }, + { title: 'TokenTransferTransaction' } +); -export const SmartContractTransactionSchema = Type.Intersect([ - AbstractTransactionSchema, - SmartContractTransactionMetadataSchema, -]); +export const SmartContractTransactionSchema = Type.Object( + { + ...AbstractTransactionProperties, + ...SmartContractTransactionMetadataProperties, + }, + { title: 'SmartContractTransaction' } +); -export const ContractCallTransactionSchema = Type.Intersect([ - AbstractTransactionSchema, - ContractCallTransactionMetadataSchema, -]); +export const ContractCallTransactionSchema = Type.Object( + { + ...AbstractTransactionProperties, + ...ContractCallTransactionMetadataProperties, + }, + { title: 'ContractCallTransaction' } +); -export const PoisonMicroblockTransactionSchema = Type.Intersect([ - AbstractTransactionSchema, - PoisonMicroblockTransactionMetadataSchema, -]); +export const PoisonMicroblockTransactionSchema = Type.Object( + { + ...AbstractTransactionProperties, + ...PoisonMicroblockTransactionMetadataProperties, + }, + { title: 'PoisonMicroblockTransaction' } +); -export const CoinbaseTransactionSchema = Type.Intersect([ - AbstractTransactionSchema, - CoinbaseTransactionMetadataSchema, -]); +export const CoinbaseTransactionSchema = Type.Object( + { + ...AbstractTransactionProperties, + ...CoinbaseTransactionMetadataProperties, + }, + { title: 'CoinbaseTransaction' } +); -export const TenureChangeTransactionSchema = Type.Intersect([ - AbstractTransactionSchema, - TenureChangeTransactionMetadataSchema, -]); +export const TenureChangeTransactionSchema = Type.Object( + { + ...AbstractTransactionProperties, + ...TenureChangeTransactionMetadataProperties, + }, + { title: 'TenureChangeTransaction' } +); const TransactionMetadataSchema = Type.Union([ TokenTransferTransactionMetadataSchema, From a40c41de833ae5ab066fbbff6f1c99b4cadaa938 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 7 Aug 2024 20:25:33 +0200 Subject: [PATCH 35/56] feat: refactor client library --- .eslintignore | 1 + client/.eslintrc.js | 19 - client/openapitools.json | 7 - client/package-lock.json | 17985 +++------ client/package.json | 39 +- client/src/common.ts | 1 + .../src/generated/.openapi-generator-ignore | 23 - client/src/generated/.openapi-generator/FILES | 172 - .../src/generated/.openapi-generator/VERSION | 1 - client/src/generated/apis/AccountsApi.ts | 773 - client/src/generated/apis/BlocksApi.ts | 306 - client/src/generated/apis/FaucetsApi.ts | 166 - client/src/generated/apis/FeesApi.ts | 195 - .../src/generated/apis/FungibleTokensApi.ts | 150 - client/src/generated/apis/InfoApi.ts | 478 - client/src/generated/apis/MempoolApi.ts | 80 - client/src/generated/apis/MicroblocksApi.ts | 196 - client/src/generated/apis/NamesApi.ts | 581 - .../generated/apis/NonFungibleTokensApi.ts | 415 - client/src/generated/apis/RosettaApi.ts | 998 - client/src/generated/apis/SearchApi.ts | 90 - .../src/generated/apis/SmartContractsApi.ts | 549 - client/src/generated/apis/StackingApi.ts | 113 - .../src/generated/apis/StackingRewardsApi.ts | 339 - client/src/generated/apis/TransactionsApi.ts | 855 - client/src/generated/apis/index.ts | 18 - client/src/generated/index.ts | 5 - .../generated/models/AccountDataResponse.ts | 96 - .../models/AddressAssetsListResponse.ts | 80 - .../models/AddressBalanceResponse.ts | 91 - .../models/AddressNftListResponse.ts | 87 - .../models/AddressNftListResponseValue.ts | 64 - client/src/generated/models/AddressNonces.ts | 88 - .../models/AddressStxInboundListResponse.ts | 87 - .../models/AddressTokenOfferingLocked.ts | 79 - .../models/AddressTransactionWithTransfers.ts | 111 - ...ressTransactionWithTransfersFtTransfers.ts | 80 - ...essTransactionWithTransfersNftTransfers.ts | 87 - ...essTransactionWithTransfersStxTransfers.ts | 72 - .../AddressTransactionWithTransfersValue.ts | 64 - .../models/AddressTransactionsListResponse.ts | 80 - ...ssTransactionsWithTransfersListResponse.ts | 87 - .../generated/models/AddressUnlockSchedule.ts | 64 - client/src/generated/models/Block.ts | 216 - .../src/generated/models/BlockListResponse.ts | 87 - client/src/generated/models/BnsError.ts | 56 - .../models/BnsGetAllNamespacesResponse.ts | 56 - .../models/BnsGetNameInfoResponse.ts | 120 - .../models/BnsGetNamePriceResponse.ts | 64 - .../models/BnsGetNamespacePriceResponse.ts | 64 - .../models/BnsNamesOwnByAddressResponse.ts | 56 - .../src/generated/models/BurnchainReward.ts | 104 - .../models/BurnchainRewardListResponse.ts | 79 - .../models/BurnchainRewardSlotHolder.ts | 88 - .../BurnchainRewardSlotHolderListResponse.ts | 87 - .../generated/models/BurnchainRewardsTotal.ts | 64 - client/src/generated/models/ChainTip.ts | 96 - .../models/ContractInterfaceResponse.ts | 88 - .../generated/models/ContractListResponse.ts | 79 - .../models/ContractSourceResponse.ts | 72 - .../generated/models/CoreNodeInfoResponse.ts | 152 - .../generated/models/CoreNodePoxResponse.ts | 120 - client/src/generated/models/FeeRate.ts | 56 - client/src/generated/models/FeeRateRequest.ts | 56 - .../generated/models/FungibleTokenMetadata.ts | 120 - .../models/FungibleTokensMetadataList.ts | 87 - .../models/GetRawTransactionResult.ts | 56 - .../GetStxSupplyLegacyFormatResponse.ts | 96 - .../generated/models/GetStxSupplyResponse.ts | 80 - .../generated/models/InboundStxTransfer.ts | 114 - client/src/generated/models/InlineObject.ts | 56 - .../src/generated/models/InlineResponse403.ts | 64 - .../src/generated/models/MapEntryResponse.ts | 64 - .../generated/models/MempoolFeePriorities.ts | 87 - .../models/MempoolFeePrioritiesAll.ts | 80 - .../models/MempoolTransactionListResponse.ts | 80 - .../models/MempoolTransactionStatsResponse.ts | 99 - .../MempoolTransactionStatsResponseTxAges.ts | 87 - ...poolTransactionStatsResponseTxByteSizes.ts | 87 - ...sactionStatsResponseTxSimpleFeeAverages.ts | 87 - ...esponseTxSimpleFeeAveragesTokenTransfer.ts | 80 - ...oolTransactionStatsResponseTxTypeCounts.ts | 80 - client/src/generated/models/Microblock.ts | 160 - .../models/MicroblockListResponse.ts | 87 - .../models/NetworkBlockTimeResponse.ts | 56 - .../models/NetworkBlockTimesResponse.ts | 71 - .../src/generated/models/NetworkIdentifier.ts | 79 - client/src/generated/models/NftEvent.ts | 127 - .../NonFungibleTokenHistoryEventList.ts | 80 - .../models/NonFungibleTokenHoldingsList.ts | 80 - .../models/NonFungibleTokenMetadata.ts | 104 - .../models/NonFungibleTokenMintList.ts | 80 - .../models/NonFungibleTokensMetadataList.ts | 87 - .../models/OtherTransactionIdentifier.ts | 56 - client/src/generated/models/PoolDelegation.ts | 96 - .../models/PoolDelegationsResponse.ts | 87 - .../models/PostCoreNodeTransactionsError.ts | 80 - .../generated/models/ReadOnlyFunctionArgs.ts | 64 - .../models/ReadOnlyFunctionSuccessResponse.ts | 72 - client/src/generated/models/RosettaAccount.ts | 79 - .../models/RosettaAccountBalanceRequest.ts | 83 - .../models/RosettaAccountBalanceResponse.ts | 95 - ...ttaAccountBalanceResponseCoinIdentifier.ts | 56 - .../RosettaAccountBalanceResponseMetadata.ts | 56 - .../models/RosettaAccountIdentifier.ts | 79 - client/src/generated/models/RosettaAmount.ts | 79 - client/src/generated/models/RosettaBlock.ts | 103 - .../generated/models/RosettaBlockMetadata.ts | 72 - .../generated/models/RosettaBlockMetadata1.ts | 64 - .../generated/models/RosettaBlockRequest.ts | 71 - .../generated/models/RosettaBlockResponse.ts | 75 - .../models/RosettaBlockTransactionRequest.ts | 83 - .../models/RosettaBlockTransactionResponse.ts | 63 - client/src/generated/models/RosettaCoin.ts | 75 - .../src/generated/models/RosettaCoinChange.ts | 80 - .../RosettaConstructionCombineRequest.ts | 83 - .../RosettaConstructionCombineResponse.ts | 56 - .../RosettaConstructionDeriveRequest.ts | 83 - .../RosettaConstructionDeriveResponse.ts | 79 - .../models/RosettaConstructionHashRequest.ts | 71 - .../models/RosettaConstructionHashResponse.ts | 71 - .../RosettaConstructionMetadataRequest.ts | 87 - .../RosettaConstructionMetadataResponse.ts | 75 - ...ttaConstructionMetadataResponseMetadata.ts | 64 - .../models/RosettaConstructionParseRequest.ts | 79 - .../RosettaConstructionParseResponse.ts | 91 - .../RosettaConstructionPayloadResponse.ts | 71 - .../RosettaConstructionPayloadsRequest.ts | 99 - .../RosettaConstructionPreprocessRequest.ts | 103 - .../RosettaConstructionPreprocessResponse.ts | 75 - .../RosettaConstructionSubmitRequest.ts | 71 - .../RosettaConstructionSubmitResponse.ts | 71 - .../src/generated/models/RosettaCurrency.ts | 72 - client/src/generated/models/RosettaError.ts | 87 - .../generated/models/RosettaErrorDetails.ts | 64 - .../generated/models/RosettaErrorNoDetails.ts | 72 - .../models/RosettaGenesisBlockIdentifier.ts | 64 - .../generated/models/RosettaMaxFeeAmount.ts | 79 - .../generated/models/RosettaMempoolRequest.ts | 71 - .../models/RosettaMempoolResponse.ts | 71 - .../RosettaMempoolTransactionRequest.ts | 75 - .../RosettaMempoolTransactionResponse.ts | 71 - .../models/RosettaNetworkListResponse.ts | 63 - ...NetworkListResponseSubNetworkIdentifier.ts | 71 - ...istResponseSubNetworkIdentifierMetadata.ts | 56 - .../models/RosettaNetworkOptionsResponse.ts | 75 - .../RosettaNetworkOptionsResponseAllow.ts | 91 - .../RosettaNetworkOptionsResponseVersion.ts | 80 - .../models/RosettaNetworkStatusResponse.ts | 115 - .../models/RosettaOldestBlockIdentifier.ts | 64 - .../src/generated/models/RosettaOperation.ts | 135 - .../models/RosettaOperationIdentifier.ts | 64 - .../models/RosettaOperationStatus.ts | 64 - client/src/generated/models/RosettaOptions.ts | 216 - .../generated/models/RosettaOptionsRequest.ts | 71 - .../models/RosettaParentBlockIdentifier.ts | 64 - client/src/generated/models/RosettaPeers.ts | 64 - .../src/generated/models/RosettaPublicKey.ts | 73 - .../models/RosettaRelatedOperation.ts | 64 - .../src/generated/models/RosettaSignature.ts | 103 - .../generated/models/RosettaStatusRequest.ts | 71 - .../src/generated/models/RosettaSubAccount.ts | 64 - .../src/generated/models/RosettaSyncStatus.ts | 80 - .../generated/models/RosettaTransaction.ts | 87 - .../src/generated/models/RunFaucetResponse.ts | 72 - .../generated/models/ServerStatusResponse.ts | 95 - client/src/generated/models/SigningPayload.ts | 99 - client/src/generated/models/SmartContract.ts | 96 - client/src/generated/models/StxBalance.ts | 128 - .../src/generated/models/TargetBlockTime.ts | 56 - .../models/TransactionEventsResponse.ts | 72 - .../models/TransactionFeeEstimateRequest.ts | 64 - .../models/TransactionFeeEstimateResponse.ts | 91 - ...sactionFeeEstimateResponseEstimatedCost.ts | 88 - ...ansactionFeeEstimateResponseEstimations.ts | 64 - .../generated/models/TransactionIdentifier.ts | 56 - .../generated/models/TransactionResults.ts | 80 - .../UnanchoredTransactionListResponse.ts | 64 - client/src/generated/models/index.ts | 153 - client/src/generated/runtime.ts | 320 - client/src/generated/schema.d.ts | 30952 ++++++++++++++++ client/src/index.ts | 14 +- client/src/socket-io/index.ts | 18 +- client/src/types.d.ts | 105 + client/src/ws/index.ts | 28 +- client/test/test.ts | 29 - client/tsconfig.browser.json | 3 - client/tsconfig.json | 4 +- src/api/controllers/db-controller.ts | 6 +- src/api/routes/address.ts | 6 +- src/api/routes/tx.ts | 21 +- .../routes/ws/channels/socket-io-channel.ts | 21 +- src/api/routes/ws/channels/ws-rpc-channel.ts | 9 +- src/api/routes/ws/web-socket-channel.ts | 5 +- src/api/routes/ws/web-socket-prometheus.ts | 2 +- src/api/routes/ws/web-socket-transmitter.ts | 4 +- .../schemas/entities/mempool-transactions.ts | 89 +- src/api/schemas/entities/search.ts | 3 +- src/api/schemas/entities/transactions.ts | 89 +- src/tests-2.5/faucet-stx.ts | 3 +- src/tests/other-tests.ts | 2 +- tsconfig.json | 1 - 202 files changed, 35626 insertions(+), 33191 deletions(-) delete mode 100644 client/.eslintrc.js delete mode 100644 client/openapitools.json create mode 100644 client/src/common.ts delete mode 100644 client/src/generated/.openapi-generator-ignore delete mode 100644 client/src/generated/.openapi-generator/FILES delete mode 100644 client/src/generated/.openapi-generator/VERSION delete mode 100644 client/src/generated/apis/AccountsApi.ts delete mode 100644 client/src/generated/apis/BlocksApi.ts delete mode 100644 client/src/generated/apis/FaucetsApi.ts delete mode 100644 client/src/generated/apis/FeesApi.ts delete mode 100644 client/src/generated/apis/FungibleTokensApi.ts delete mode 100644 client/src/generated/apis/InfoApi.ts delete mode 100644 client/src/generated/apis/MempoolApi.ts delete mode 100644 client/src/generated/apis/MicroblocksApi.ts delete mode 100644 client/src/generated/apis/NamesApi.ts delete mode 100644 client/src/generated/apis/NonFungibleTokensApi.ts delete mode 100644 client/src/generated/apis/RosettaApi.ts delete mode 100644 client/src/generated/apis/SearchApi.ts delete mode 100644 client/src/generated/apis/SmartContractsApi.ts delete mode 100644 client/src/generated/apis/StackingApi.ts delete mode 100644 client/src/generated/apis/StackingRewardsApi.ts delete mode 100644 client/src/generated/apis/TransactionsApi.ts delete mode 100644 client/src/generated/apis/index.ts delete mode 100644 client/src/generated/index.ts delete mode 100644 client/src/generated/models/AccountDataResponse.ts delete mode 100644 client/src/generated/models/AddressAssetsListResponse.ts delete mode 100644 client/src/generated/models/AddressBalanceResponse.ts delete mode 100644 client/src/generated/models/AddressNftListResponse.ts delete mode 100644 client/src/generated/models/AddressNftListResponseValue.ts delete mode 100644 client/src/generated/models/AddressNonces.ts delete mode 100644 client/src/generated/models/AddressStxInboundListResponse.ts delete mode 100644 client/src/generated/models/AddressTokenOfferingLocked.ts delete mode 100644 client/src/generated/models/AddressTransactionWithTransfers.ts delete mode 100644 client/src/generated/models/AddressTransactionWithTransfersFtTransfers.ts delete mode 100644 client/src/generated/models/AddressTransactionWithTransfersNftTransfers.ts delete mode 100644 client/src/generated/models/AddressTransactionWithTransfersStxTransfers.ts delete mode 100644 client/src/generated/models/AddressTransactionWithTransfersValue.ts delete mode 100644 client/src/generated/models/AddressTransactionsListResponse.ts delete mode 100644 client/src/generated/models/AddressTransactionsWithTransfersListResponse.ts delete mode 100644 client/src/generated/models/AddressUnlockSchedule.ts delete mode 100644 client/src/generated/models/Block.ts delete mode 100644 client/src/generated/models/BlockListResponse.ts delete mode 100644 client/src/generated/models/BnsError.ts delete mode 100644 client/src/generated/models/BnsGetAllNamespacesResponse.ts delete mode 100644 client/src/generated/models/BnsGetNameInfoResponse.ts delete mode 100644 client/src/generated/models/BnsGetNamePriceResponse.ts delete mode 100644 client/src/generated/models/BnsGetNamespacePriceResponse.ts delete mode 100644 client/src/generated/models/BnsNamesOwnByAddressResponse.ts delete mode 100644 client/src/generated/models/BurnchainReward.ts delete mode 100644 client/src/generated/models/BurnchainRewardListResponse.ts delete mode 100644 client/src/generated/models/BurnchainRewardSlotHolder.ts delete mode 100644 client/src/generated/models/BurnchainRewardSlotHolderListResponse.ts delete mode 100644 client/src/generated/models/BurnchainRewardsTotal.ts delete mode 100644 client/src/generated/models/ChainTip.ts delete mode 100644 client/src/generated/models/ContractInterfaceResponse.ts delete mode 100644 client/src/generated/models/ContractListResponse.ts delete mode 100644 client/src/generated/models/ContractSourceResponse.ts delete mode 100644 client/src/generated/models/CoreNodeInfoResponse.ts delete mode 100644 client/src/generated/models/CoreNodePoxResponse.ts delete mode 100644 client/src/generated/models/FeeRate.ts delete mode 100644 client/src/generated/models/FeeRateRequest.ts delete mode 100644 client/src/generated/models/FungibleTokenMetadata.ts delete mode 100644 client/src/generated/models/FungibleTokensMetadataList.ts delete mode 100644 client/src/generated/models/GetRawTransactionResult.ts delete mode 100644 client/src/generated/models/GetStxSupplyLegacyFormatResponse.ts delete mode 100644 client/src/generated/models/GetStxSupplyResponse.ts delete mode 100644 client/src/generated/models/InboundStxTransfer.ts delete mode 100644 client/src/generated/models/InlineObject.ts delete mode 100644 client/src/generated/models/InlineResponse403.ts delete mode 100644 client/src/generated/models/MapEntryResponse.ts delete mode 100644 client/src/generated/models/MempoolFeePriorities.ts delete mode 100644 client/src/generated/models/MempoolFeePrioritiesAll.ts delete mode 100644 client/src/generated/models/MempoolTransactionListResponse.ts delete mode 100644 client/src/generated/models/MempoolTransactionStatsResponse.ts delete mode 100644 client/src/generated/models/MempoolTransactionStatsResponseTxAges.ts delete mode 100644 client/src/generated/models/MempoolTransactionStatsResponseTxByteSizes.ts delete mode 100644 client/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.ts delete mode 100644 client/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.ts delete mode 100644 client/src/generated/models/MempoolTransactionStatsResponseTxTypeCounts.ts delete mode 100644 client/src/generated/models/Microblock.ts delete mode 100644 client/src/generated/models/MicroblockListResponse.ts delete mode 100644 client/src/generated/models/NetworkBlockTimeResponse.ts delete mode 100644 client/src/generated/models/NetworkBlockTimesResponse.ts delete mode 100644 client/src/generated/models/NetworkIdentifier.ts delete mode 100644 client/src/generated/models/NftEvent.ts delete mode 100644 client/src/generated/models/NonFungibleTokenHistoryEventList.ts delete mode 100644 client/src/generated/models/NonFungibleTokenHoldingsList.ts delete mode 100644 client/src/generated/models/NonFungibleTokenMetadata.ts delete mode 100644 client/src/generated/models/NonFungibleTokenMintList.ts delete mode 100644 client/src/generated/models/NonFungibleTokensMetadataList.ts delete mode 100644 client/src/generated/models/OtherTransactionIdentifier.ts delete mode 100644 client/src/generated/models/PoolDelegation.ts delete mode 100644 client/src/generated/models/PoolDelegationsResponse.ts delete mode 100644 client/src/generated/models/PostCoreNodeTransactionsError.ts delete mode 100644 client/src/generated/models/ReadOnlyFunctionArgs.ts delete mode 100644 client/src/generated/models/ReadOnlyFunctionSuccessResponse.ts delete mode 100644 client/src/generated/models/RosettaAccount.ts delete mode 100644 client/src/generated/models/RosettaAccountBalanceRequest.ts delete mode 100644 client/src/generated/models/RosettaAccountBalanceResponse.ts delete mode 100644 client/src/generated/models/RosettaAccountBalanceResponseCoinIdentifier.ts delete mode 100644 client/src/generated/models/RosettaAccountBalanceResponseMetadata.ts delete mode 100644 client/src/generated/models/RosettaAccountIdentifier.ts delete mode 100644 client/src/generated/models/RosettaAmount.ts delete mode 100644 client/src/generated/models/RosettaBlock.ts delete mode 100644 client/src/generated/models/RosettaBlockMetadata.ts delete mode 100644 client/src/generated/models/RosettaBlockMetadata1.ts delete mode 100644 client/src/generated/models/RosettaBlockRequest.ts delete mode 100644 client/src/generated/models/RosettaBlockResponse.ts delete mode 100644 client/src/generated/models/RosettaBlockTransactionRequest.ts delete mode 100644 client/src/generated/models/RosettaBlockTransactionResponse.ts delete mode 100644 client/src/generated/models/RosettaCoin.ts delete mode 100644 client/src/generated/models/RosettaCoinChange.ts delete mode 100644 client/src/generated/models/RosettaConstructionCombineRequest.ts delete mode 100644 client/src/generated/models/RosettaConstructionCombineResponse.ts delete mode 100644 client/src/generated/models/RosettaConstructionDeriveRequest.ts delete mode 100644 client/src/generated/models/RosettaConstructionDeriveResponse.ts delete mode 100644 client/src/generated/models/RosettaConstructionHashRequest.ts delete mode 100644 client/src/generated/models/RosettaConstructionHashResponse.ts delete mode 100644 client/src/generated/models/RosettaConstructionMetadataRequest.ts delete mode 100644 client/src/generated/models/RosettaConstructionMetadataResponse.ts delete mode 100644 client/src/generated/models/RosettaConstructionMetadataResponseMetadata.ts delete mode 100644 client/src/generated/models/RosettaConstructionParseRequest.ts delete mode 100644 client/src/generated/models/RosettaConstructionParseResponse.ts delete mode 100644 client/src/generated/models/RosettaConstructionPayloadResponse.ts delete mode 100644 client/src/generated/models/RosettaConstructionPayloadsRequest.ts delete mode 100644 client/src/generated/models/RosettaConstructionPreprocessRequest.ts delete mode 100644 client/src/generated/models/RosettaConstructionPreprocessResponse.ts delete mode 100644 client/src/generated/models/RosettaConstructionSubmitRequest.ts delete mode 100644 client/src/generated/models/RosettaConstructionSubmitResponse.ts delete mode 100644 client/src/generated/models/RosettaCurrency.ts delete mode 100644 client/src/generated/models/RosettaError.ts delete mode 100644 client/src/generated/models/RosettaErrorDetails.ts delete mode 100644 client/src/generated/models/RosettaErrorNoDetails.ts delete mode 100644 client/src/generated/models/RosettaGenesisBlockIdentifier.ts delete mode 100644 client/src/generated/models/RosettaMaxFeeAmount.ts delete mode 100644 client/src/generated/models/RosettaMempoolRequest.ts delete mode 100644 client/src/generated/models/RosettaMempoolResponse.ts delete mode 100644 client/src/generated/models/RosettaMempoolTransactionRequest.ts delete mode 100644 client/src/generated/models/RosettaMempoolTransactionResponse.ts delete mode 100644 client/src/generated/models/RosettaNetworkListResponse.ts delete mode 100644 client/src/generated/models/RosettaNetworkListResponseSubNetworkIdentifier.ts delete mode 100644 client/src/generated/models/RosettaNetworkListResponseSubNetworkIdentifierMetadata.ts delete mode 100644 client/src/generated/models/RosettaNetworkOptionsResponse.ts delete mode 100644 client/src/generated/models/RosettaNetworkOptionsResponseAllow.ts delete mode 100644 client/src/generated/models/RosettaNetworkOptionsResponseVersion.ts delete mode 100644 client/src/generated/models/RosettaNetworkStatusResponse.ts delete mode 100644 client/src/generated/models/RosettaOldestBlockIdentifier.ts delete mode 100644 client/src/generated/models/RosettaOperation.ts delete mode 100644 client/src/generated/models/RosettaOperationIdentifier.ts delete mode 100644 client/src/generated/models/RosettaOperationStatus.ts delete mode 100644 client/src/generated/models/RosettaOptions.ts delete mode 100644 client/src/generated/models/RosettaOptionsRequest.ts delete mode 100644 client/src/generated/models/RosettaParentBlockIdentifier.ts delete mode 100644 client/src/generated/models/RosettaPeers.ts delete mode 100644 client/src/generated/models/RosettaPublicKey.ts delete mode 100644 client/src/generated/models/RosettaRelatedOperation.ts delete mode 100644 client/src/generated/models/RosettaSignature.ts delete mode 100644 client/src/generated/models/RosettaStatusRequest.ts delete mode 100644 client/src/generated/models/RosettaSubAccount.ts delete mode 100644 client/src/generated/models/RosettaSyncStatus.ts delete mode 100644 client/src/generated/models/RosettaTransaction.ts delete mode 100644 client/src/generated/models/RunFaucetResponse.ts delete mode 100644 client/src/generated/models/ServerStatusResponse.ts delete mode 100644 client/src/generated/models/SigningPayload.ts delete mode 100644 client/src/generated/models/SmartContract.ts delete mode 100644 client/src/generated/models/StxBalance.ts delete mode 100644 client/src/generated/models/TargetBlockTime.ts delete mode 100644 client/src/generated/models/TransactionEventsResponse.ts delete mode 100644 client/src/generated/models/TransactionFeeEstimateRequest.ts delete mode 100644 client/src/generated/models/TransactionFeeEstimateResponse.ts delete mode 100644 client/src/generated/models/TransactionFeeEstimateResponseEstimatedCost.ts delete mode 100644 client/src/generated/models/TransactionFeeEstimateResponseEstimations.ts delete mode 100644 client/src/generated/models/TransactionIdentifier.ts delete mode 100644 client/src/generated/models/TransactionResults.ts delete mode 100644 client/src/generated/models/UnanchoredTransactionListResponse.ts delete mode 100644 client/src/generated/models/index.ts delete mode 100644 client/src/generated/runtime.ts create mode 100644 client/src/generated/schema.d.ts create mode 100644 client/src/types.d.ts delete mode 100644 client/test/test.ts diff --git a/.eslintignore b/.eslintignore index 1b72850d6..ab5411dd7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -16,3 +16,4 @@ src/tests-bns/ client/src/ config/ utils/src/ +client* diff --git a/client/.eslintrc.js b/client/.eslintrc.js deleted file mode 100644 index 7ed03d069..000000000 --- a/client/.eslintrc.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - root: true, - extends: ['@stacks/eslint-config', 'prettier'], - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'prettier'], - parserOptions: { - tsconfigRootDir: __dirname, - project: './tsconfig.json', - ecmaVersion: 2017, - sourceType: 'module', - }, - ignorePatterns: ['lib/*', 'test/*', '.eslintrc.js'], - rules: { - 'prettier/prettier': 'error', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/restrict-template-expressions': 'off', - }, -}; diff --git a/client/openapitools.json b/client/openapitools.json deleted file mode 100644 index 3b40e47a4..000000000 --- a/client/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "5.3.0" - } -} diff --git a/client/package-lock.json b/client/package-lock.json index a9d4373b8..1e4600d8a 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,7 +1,7 @@ { "name": "@stacks/blockchain-api-client", "version": "0.1.2", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -9,165 +9,79 @@ "version": "0.1.2", "license": "GPL-3.0", "dependencies": { - "@stacks/stacks-blockchain-api-types": "*", - "@types/ws": "7.4.7", - "cross-fetch": "3.1.5", - "eventemitter3": "4.0.7", - "jsonrpc-lite": "2.2.0", - "socket.io-client": "4.7.3", - "ws": "8.16.0" + "eventemitter3": "^4.0.7", + "jsonrpc-lite": "^2.2.0", + "openapi-fetch": "^0.10.5", + "socket.io-client": "^4.7.5" }, "devDependencies": { - "@apidevtools/swagger-cli": "4.0.4", - "@openapitools/openapi-generator-cli": "2.13.4", - "@stacks/eslint-config": "2.0.0", - "@stacks/prettier-config": "0.0.10", "@types/node": "20.10.6", - "@typescript-eslint/eslint-plugin": "6.17.0", - "@typescript-eslint/parser": "6.17.0", "concurrently": "7.6.0", - "eslint": "8.56.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-prettier": "5.1.2", - "eslint-plugin-unused-imports": "3.0.0", "http-server": "14.0.0", - "microbundle": "0.13.3", - "prettier": "3.1.1", - "rimraf": "5.0.0", - "shx": "0.3.3", + "microbundle": "0.15.1", + "openapi-typescript": "7.3.0", + "rimraf": "6.0.1", "ts-node": "10.9.2", - "typedoc": "0.25.6", - "typescript": "5.3.3" + "typedoc": "0.26.5", + "typescript": "5.5.4" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", - "dev": true, - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "dev": true, "engines": { - "node": ">=10" + "node": ">=6.0.0" } }, - "node_modules/@apidevtools/swagger-cli": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@apidevtools/swagger-parser": "^10.0.1", - "chalk": "^4.1.0", - "js-yaml": "^3.14.0", - "yargs": "^15.4.1" - }, - "bin": { - "swagger-cli": "bin/swagger-cli.js" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz", - "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==", - "dev": true, - "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.0.6", - "@apidevtools/openapi-schemas": "^2.0.4", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "z-schema": "^5.0.1" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz", - "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helpers": "^7.16.5", - "@babel/parser": "^7.16.5", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -177,106 +91,75 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz", - "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", - "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz", - "integrity": "sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz", - "integrity": "sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-member-expression-to-functions": "^7.16.5", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.5", - "@babel/helper-split-export-declaration": "^7.16.0" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -286,13 +169,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", - "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "regexpu-core": "^4.7.1" + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -302,281 +186,210 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz", - "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", - "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz", - "integrity": "sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz", - "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", - "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz", - "integrity": "sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-wrap-function": "^7.16.5", - "@babel/types": "^7.16.0" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz", - "integrity": "sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-member-expression-to-functions": "^7.16.5", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz", - "integrity": "sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz", - "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dev": true, "dependencies": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -620,13 +433,13 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -635,7 +448,7 @@ "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -654,10 +467,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.16.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz", - "integrity": "sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dev": true, + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -665,13 +481,44 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", - "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -681,14 +528,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", - "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -697,27 +544,27 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz", - "integrity": "sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-remap-async-to-generator": "^7.16.5", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.12.1", @@ -727,63 +574,49 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz", - "integrity": "sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz", - "integrity": "sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz", - "integrity": "sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz", - "integrity": "sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -792,46 +625,37 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz", - "integrity": "sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz", - "integrity": "sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz", - "integrity": "sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==", + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz", + "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -840,17 +664,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz", - "integrity": "sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -859,14 +679,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz", - "integrity": "sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -875,49 +694,37 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz", - "integrity": "sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz", - "integrity": "sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz", - "integrity": "sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-create-class-features-plugin": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -926,26 +733,22 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz", - "integrity": "sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" - }, - "engines": { - "node": ">=4" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -954,37 +757,34 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { + "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -993,25 +793,25 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { + "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.5.tgz", - "integrity": "sha512-Nrx+7EAJx1BieBQseZa2pavVH2Rp7hADK2xn7coYqVbWRu9C2OFizYcsKo6TrrqJkJl+qF/+Qqzrk/+XDu4GnA==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1020,139 +820,162 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz", - "integrity": "sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", + "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" @@ -1161,13 +984,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz", - "integrity": "sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1176,15 +1000,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz", - "integrity": "sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-remap-async-to-generator": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1193,13 +1015,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz", - "integrity": "sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1208,13 +1031,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz", - "integrity": "sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1223,44 +1046,30 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz", - "integrity": "sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-replace-supers": "^7.16.5", - "@babel/helper-split-export-declaration": "^7.16.0", - "globals": "^11.1.0" + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz", - "integrity": "sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1269,13 +1078,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz", - "integrity": "sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1284,14 +1094,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz", - "integrity": "sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1300,13 +1110,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz", - "integrity": "sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==", + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz", + "integrity": "sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-flow": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1315,14 +1126,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz", - "integrity": "sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1331,14 +1142,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.5.tgz", - "integrity": "sha512-skE02E/MptkZdBS4HwoRhjWXqeKQj0BWKEAPfPC+8R4/f6bjQqQ9Nftv/+HkxWwnVxh/E2NV9TNfzLN5H/oiBw==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-flow": "^7.16.5" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1347,13 +1159,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz", - "integrity": "sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1362,14 +1175,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz", - "integrity": "sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1378,13 +1190,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz", - "integrity": "sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1394,12 +1207,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz", - "integrity": "sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1409,14 +1222,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz", - "integrity": "sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1426,15 +1238,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz", - "integrity": "sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-simple-access": "^7.16.0", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1444,16 +1255,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz", - "integrity": "sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-identifier": "^7.15.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1463,13 +1273,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz", - "integrity": "sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1479,12 +1289,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz", - "integrity": "sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1494,12 +1305,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz", - "integrity": "sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1508,14 +1319,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz", - "integrity": "sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-replace-supers": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1524,13 +1335,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz", - "integrity": "sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1539,13 +1351,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz", - "integrity": "sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1554,13 +1369,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz", - "integrity": "sha512-dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1569,17 +1385,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz", - "integrity": "sha512-+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-jsx": "^7.16.5", - "@babel/types": "^7.16.0" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1588,13 +1401,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz", - "integrity": "sha512-uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1603,14 +1418,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz", - "integrity": "sha512-0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1619,13 +1433,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz", - "integrity": "sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, "dependencies": { - "regenerator-transform": "^0.14.2" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1634,13 +1449,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz", - "integrity": "sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1649,13 +1467,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz", - "integrity": "sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1664,14 +1482,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz", - "integrity": "sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==", + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1680,13 +1497,17 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz", - "integrity": "sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==", + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", + "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -1695,13 +1516,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz", - "integrity": "sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==", + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", + "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/plugin-transform-react-jsx": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1710,13 +1531,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz", - "integrity": "sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==", + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1725,13 +1547,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz", - "integrity": "sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1740,14 +1563,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz", - "integrity": "sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1756,86 +1578,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.5.tgz", - "integrity": "sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-async-generator-functions": "^7.16.5", - "@babel/plugin-proposal-class-properties": "^7.16.5", - "@babel/plugin-proposal-class-static-block": "^7.16.5", - "@babel/plugin-proposal-dynamic-import": "^7.16.5", - "@babel/plugin-proposal-export-namespace-from": "^7.16.5", - "@babel/plugin-proposal-json-strings": "^7.16.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.5", - "@babel/plugin-proposal-numeric-separator": "^7.16.5", - "@babel/plugin-proposal-object-rest-spread": "^7.16.5", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.5", - "@babel/plugin-proposal-optional-chaining": "^7.16.5", - "@babel/plugin-proposal-private-methods": "^7.16.5", - "@babel/plugin-proposal-private-property-in-object": "^7.16.5", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.5", - "@babel/plugin-transform-async-to-generator": "^7.16.5", - "@babel/plugin-transform-block-scoped-functions": "^7.16.5", - "@babel/plugin-transform-block-scoping": "^7.16.5", - "@babel/plugin-transform-classes": "^7.16.5", - "@babel/plugin-transform-computed-properties": "^7.16.5", - "@babel/plugin-transform-destructuring": "^7.16.5", - "@babel/plugin-transform-dotall-regex": "^7.16.5", - "@babel/plugin-transform-duplicate-keys": "^7.16.5", - "@babel/plugin-transform-exponentiation-operator": "^7.16.5", - "@babel/plugin-transform-for-of": "^7.16.5", - "@babel/plugin-transform-function-name": "^7.16.5", - "@babel/plugin-transform-literals": "^7.16.5", - "@babel/plugin-transform-member-expression-literals": "^7.16.5", - "@babel/plugin-transform-modules-amd": "^7.16.5", - "@babel/plugin-transform-modules-commonjs": "^7.16.5", - "@babel/plugin-transform-modules-systemjs": "^7.16.5", - "@babel/plugin-transform-modules-umd": "^7.16.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.5", - "@babel/plugin-transform-new-target": "^7.16.5", - "@babel/plugin-transform-object-super": "^7.16.5", - "@babel/plugin-transform-parameters": "^7.16.5", - "@babel/plugin-transform-property-literals": "^7.16.5", - "@babel/plugin-transform-regenerator": "^7.16.5", - "@babel/plugin-transform-reserved-words": "^7.16.5", - "@babel/plugin-transform-shorthand-properties": "^7.16.5", - "@babel/plugin-transform-spread": "^7.16.5", - "@babel/plugin-transform-sticky-regex": "^7.16.5", - "@babel/plugin-transform-template-literals": "^7.16.5", - "@babel/plugin-transform-typeof-symbol": "^7.16.5", - "@babel/plugin-transform-unicode-escapes": "^7.16.5", - "@babel/plugin-transform-unicode-regex": "^7.16.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.0", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.4.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.19.1", - "semver": "^6.3.0" + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1844,14 +1593,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz", - "integrity": "sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1860,24 +1609,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-flow": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.5.tgz", - "integrity": "sha512-rmC6Nznp4V55N4Zfec87jwd14TdREqwKVJFM/6Z2wTwoeZQr56czjaPRCezqzqc8TsHF7aLP1oczjadIQ058gw==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-flow-strip-types": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1886,34 +1624,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-react": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz", - "integrity": "sha512-3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.5", - "@babel/plugin-transform-react-jsx": "^7.16.5", - "@babel/plugin-transform-react-jsx-development": "^7.16.5", - "@babel/plugin-transform-react-pure-annotations": "^7.16.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1922,93 +1654,275 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz", - "integrity": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.4" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", - "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.5", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/preset-env": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-flow": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.7.tgz", + "integrity": "sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-flow-strip-types": "^7.24.7" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2037,551 +1951,302 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=12" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=10.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=12.22" + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "node_modules/@lukeed/csprng": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", - "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "optional": true, "engines": { - "node": ">=8" - } - }, - "node_modules/@nestjs/axios": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.2.tgz", - "integrity": "sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ==", - "dev": true, - "peerDependencies": { - "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", - "axios": "^1.3.1", - "rxjs": "^6.0.0 || ^7.0.0" + "node": ">=14" } }, - "node_modules/@nestjs/common": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz", - "integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", + "node_modules/@redocly/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==", "dev": true, "dependencies": { - "iterare": "1.2.1", - "tslib": "2.6.2", - "uid": "2.0.2" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "class-transformer": "*", - "class-validator": "*", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "class-transformer": { - "optional": true - }, - "class-validator": { - "optional": true - } + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@nestjs/core": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz", - "integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@nuxtjs/opencollective": "0.3.2", - "fast-safe-stringify": "2.1.1", - "iterare": "1.2.1", - "path-to-regexp": "3.2.0", - "tslib": "2.6.2", - "uid": "2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "@nestjs/common": "^10.0.0", - "@nestjs/microservices": "^10.0.0", - "@nestjs/platform-express": "^10.0.0", - "@nestjs/websockets": "^10.0.0", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "@nestjs/microservices": { - "optional": true - }, - "@nestjs/platform-express": { - "optional": true - }, - "@nestjs/websockets": { - "optional": true - } - } + "node_modules/@redocly/config": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.7.0.tgz", + "integrity": "sha512-6GKxTo/9df0654Mtivvr4lQnMOp+pRj9neVywmI5+BwfZLTtkJnj2qB3D6d8FHTr4apsNOf6zTa5FojX0Evh4g==", + "dev": true }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@redocly/openapi-core": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.19.0.tgz", + "integrity": "sha512-ezK6qr80sXvjDgHNrk/zmRs9vwpIAeHa0T/qmo96S+ib4ThQ5a8f3qjwEqxMeVxkxCTbkaY9sYSJKOxv4ejg5w==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@redocly/ajv": "^8.11.0", + "@redocly/config": "^0.7.0", + "colorette": "^1.2.0", + "https-proxy-agent": "^7.0.4", + "js-levenshtein": "^1.1.6", + "js-yaml": "^4.1.0", + "lodash.isequal": "^4.5.0", + "minimatch": "^5.0.1", + "node-fetch": "^2.6.1", + "pluralize": "^8.0.0", + "yaml-ast-parser": "0.0.43" }, "engines": { - "node": ">= 8" + "node": ">=14.19.0", + "npm": ">=7.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@redocly/openapi-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "engines": { - "node": ">= 8" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@redocly/openapi-core/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "node_modules/@nuxtjs/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "node_modules/@rollup/plugin-alias": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz", + "integrity": "sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - }, - "bin": { - "opencollective": "bin/opencollective.js" + "slash": "^3.0.0" }, "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" + "node": ">=8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/@openapitools/openapi-generator-cli": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.13.4.tgz", - "integrity": "sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww==", + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", "dev": true, - "hasInstallScript": true, "dependencies": { - "@nestjs/axios": "3.0.2", - "@nestjs/common": "10.3.0", - "@nestjs/core": "10.3.0", - "@nuxtjs/opencollective": "0.3.2", - "axios": "1.6.8", - "chalk": "4.1.2", - "commander": "8.3.0", - "compare-versions": "4.1.4", - "concurrently": "6.5.1", - "console.table": "0.10.0", - "fs-extra": "10.1.0", - "glob": "7.2.3", - "https-proxy-agent": "7.0.4", - "inquirer": "8.2.6", - "lodash": "4.17.21", - "reflect-metadata": "0.1.13", - "rxjs": "7.8.1", - "tslib": "2.6.2" - }, - "bin": { - "openapi-generator-cli": "main.js" + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" }, "engines": { - "node": ">=10.0.0" + "node": ">= 10.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/openapi_generator" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", - "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", + "node_modules/@rollup/plugin-commonjs": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", + "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.16.1", - "lodash": "^4.17.21", - "rxjs": "^6.6.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^16.2.0" - }, - "bin": { - "concurrently": "bin/concurrently.js" + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" }, "engines": { - "node": ">=10.0.0" + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^2.30.0" } }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "node_modules/@rollup/plugin-json": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", + "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", "dev": true, "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/concurrently/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pkgr/core": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz", - "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@rollup/plugin-alias": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.8.tgz", - "integrity": "sha512-tf7HeSs/06wO2LPqKNY3Ckbvy0JRe7Jyn98bXnt/gfrxbe+AJucoNJlsEVi9sdgbQtXemjbakCpO/76JVgnHpA==", - "dev": true, - "dependencies": { - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", - "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", - "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^2.30.0" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.0.8" + "@rollup/pluginutils": "^3.0.8" }, "peerDependencies": { "rollup": "^1.20.0 || ^2.0.0" @@ -2630,60 +2295,32 @@ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" - }, - "node_modules/@stacks/eslint-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@stacks/eslint-config/-/eslint-config-2.0.0.tgz", - "integrity": "sha512-GrRiJE7nadre+wCGAkaxCmHGD8tEYOtVW/cjjMdh/H37yl3vGj/lX723MfiXj/YcQDJ1qs/8V9Rx9b4VsFp10Q==", + "node_modules/@shikijs/core": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.12.1.tgz", + "integrity": "sha512-biCz/mnkMktImI6hMfMX3H9kOeqsInxWEyCHbSlL8C/2TR1FqfmGxTLRNwYCKsyCyxWLbB8rEqXRVZuyxuLFmA==", "dev": true, "dependencies": { - "@stacks/prettier-config": "^0.0.10", - "@typescript-eslint/eslint-plugin": ">=6", - "@typescript-eslint/parser": ">=6", - "eslint": ">=8", - "eslint-config-prettier": "^9.0.0", - "eslint-import-resolver-typescript": ">=3", - "eslint-plugin-import": ">=2", - "eslint-plugin-prettier": ">=5", - "eslint-plugin-unused-imports": ">=3" - }, - "peerDependencies": { - "eslint": ">=8", - "eslint-plugin-import": ">=2", - "eslint-plugin-prettier": ">=5", - "eslint-plugin-unused-imports": ">=3" + "@types/hast": "^3.0.4" } }, - "node_modules/@stacks/prettier-config": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/@stacks/prettier-config/-/prettier-config-0.0.10.tgz", - "integrity": "sha512-MrYWGEgO/mYR8TOZIKknQEHbFQZ5VyAD/s8eF2Yxr6Lgalt2alVEh+6ODehVP2uepkyXPmJzLbaQYs8/L4E78Q==", - "dev": true, - "dependencies": { - "prettier": "2.5" - } + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" }, - "node_modules/@stacks/prettier-config/node_modules/prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" } }, - "node_modules/@stacks/stacks-blockchain-api-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@stacks/stacks-blockchain-api-types/-/stacks-blockchain-api-types-1.0.4.tgz", - "integrity": "sha512-PjZaZFcsADrGqcAYnW9xkwJIAt8gEgkaBP7R9wKYMACFDuEwoHZ22NntiI636wRf1bMkDIa3T/+4naP6jv5f/A==" - }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -2694,9 +2331,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true }, "node_modules/@tsconfig/node12": { @@ -2723,30 +2360,28 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } }, "node_modules/@types/node": { "version": "20.10.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz", "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==", + "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "node_modules/@types/resolve": { @@ -2758,484 +2393,122 @@ "@types/node": "*" } }, - "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.17.0.tgz", - "integrity": "sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==", + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.17.0", - "@typescript-eslint/type-utils": "6.17.0", - "@typescript-eslint/utils": "6.17.0", - "@typescript-eslint/visitor-keys": "6.17.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=0.4.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.17.0.tgz", - "integrity": "sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==", + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.17.0", - "@typescript-eslint/types": "6.17.0", - "@typescript-eslint/typescript-estree": "6.17.0", - "@typescript-eslint/visitor-keys": "6.17.0", - "debug": "^4.3.4" + "acorn": "^8.11.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=0.4.0" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.17.0.tgz", - "integrity": "sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==", + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.17.0", - "@typescript-eslint/visitor-keys": "6.17.0" + "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">= 14" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.17.0.tgz", - "integrity": "sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==", + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.17.0", - "@typescript-eslint/utils": "6.17.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=6" } }, - "node_modules/@typescript-eslint/types": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.17.0.tgz", - "integrity": "sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.17.0.tgz", - "integrity": "sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.17.0", - "@typescript-eslint/visitor-keys": "6.17.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "color-convert": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.17.0.tgz", - "integrity": "sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.17.0", - "@typescript-eslint/types": "6.17.0", - "@typescript-eslint/typescript-estree": "6.17.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.17.0.tgz", - "integrity": "sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.17.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -3246,18 +2519,9 @@ } }, "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/asyncro": { @@ -3267,17 +2531,31 @@ "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", - "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "browserslist": "^4.17.5", - "caniuse-lite": "^1.0.30001272", - "fraction.js": "^4.1.1", + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.1.0" + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" }, "bin": { "autoprefixer": "bin/autoprefixer" @@ -3285,19 +2563,18 @@ "engines": { "node": "^10 || ^12 || >=14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -3305,26 +2582,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-macros": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", @@ -3341,57 +2598,48 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", - "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.18.0" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-transform-async-to-promises": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-promises/-/babel-plugin-transform-async-to-promises-0.8.17.tgz", - "integrity": "sha512-MAijrdLcXjZBkET+n4GA9g96Wt5AibTHRKHWU3Zuuenvkge3QgrYiYfXsNcHZbQzJ6XO73l4MRMDNP+ZE77u5A==", + "version": "0.8.18", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-promises/-/babel-plugin-transform-async-to-promises-0.8.18.tgz", + "integrity": "sha512-WpOrF76nUHijnNn10eBGOHZmXQC8JYRME9rOLxStOga7Av2VO53ehVFvVNImMksVtQuL2/7ZNxEgxnx7oo/3Hw==", "dev": true }, "node_modules/babel-plugin-transform-replace-expressions": { @@ -3412,30 +2660,10 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, "dependencies": { "safe-buffer": "5.1.2" @@ -3444,21 +2672,10 @@ "node": ">= 0.8" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "node_modules/brace-expansion": { @@ -3471,18 +2688,6 @@ "concat-map": "0.0.1" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/brotli-size": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz", @@ -3496,50 +2701,35 @@ } }, "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, "node_modules/buffer-from": { @@ -3549,9 +2739,9 @@ "dev": true }, "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { "node": ">=6" @@ -3561,25 +2751,24 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3590,9 +2779,9 @@ } }, "node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { "node": ">=10" @@ -3614,14 +2803,24 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001292", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001292.tgz", - "integrity": "sha512-jnT4Tq0Q4ma+6nncYQVe7d73kmDmE9C3OGTx3MvW7lBM/eY1S1DZTMBON7dqV481RhNiS5OxD7k9JQvmDOTirw==", + "version": "1.0.30001650", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz", + "integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, "node_modules/chalk": { "version": "4.1.2", @@ -3639,63 +2838,30 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "restore-cursor": "^3.1.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, "engines": { - "node": ">=0.8" + "node": ">=12" } }, "node_modules/color-convert": { @@ -3717,9 +2883,15 @@ "dev": true }, "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, "node_modules/colors": { @@ -3731,43 +2903,25 @@ "node": ">=0.1.90" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "engines": { - "node": ">= 12" + "node": ">= 10" } }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compare-versions": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz", - "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/concat-with-sourcemaps": { @@ -3779,15 +2933,6 @@ "source-map": "^0.6.1" } }, - "node_modules/concat-with-sourcemaps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/concurrently": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", @@ -3815,151 +2960,38 @@ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "node_modules/concurrently/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/concurrently/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/concurrently/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "node_modules/console.table": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", - "integrity": "sha1-CRcCVYiHW+/XDPLv9L7yxuLXXQQ=", - "dev": true, - "dependencies": { - "easy-table": "1.1.0" - }, - "engines": { - "node": "> 0.10" - } - }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "node_modules/core-js-compat": { - "version": "3.20.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.1.tgz", - "integrity": "sha512-AVhKZNpqMV3Jz8hU0YEXXE06qoxtQGsAqU0u1neUngz5IusDJRX/ZJ6t3i7mS7QxNyEONbCo14GprkBrxPlTZA==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", + "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", "dev": true, "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/corser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", @@ -3978,14 +3010,6 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -4001,29 +3025,26 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", - "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", "dev": true, - "dependencies": { - "timsort": "^0.3.0" - }, "engines": { - "node": ">= 10" + "node": "^10 || ^12 || >=14" }, "peerDependencies": { "postcss": "^8.0.9" } }, "node_modules/css-select": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz", - "integrity": "sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" }, @@ -4044,19 +3065,10 @@ "node": ">=8.0.0" } }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, "engines": { "node": ">= 6" @@ -4078,12 +3090,12 @@ } }, "node_modules/cssnano": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.14.tgz", - "integrity": "sha512-qzhRkFvBhv08tbyKCIfWbxBXmkIpLl1uNblt8SpTHkgLfON5OCPX/CCnkdNmEosvo8bANQYmTTMEgcVBlisHaw==", + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.1.9", + "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -4099,40 +3111,40 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.9.tgz", - "integrity": "sha512-RhkEucqlQ+OxEi14K1p8gdXcMQy1mSpo7P1oC44oRls7BYIj8p+cht4IFBFV3W4iOjTP8EUB33XV1fX9KhDzyA==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.2", - "postcss-convert-values": "^5.0.2", - "postcss-discard-comments": "^5.0.1", - "postcss-discard-duplicates": "^5.0.1", - "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.4", - "postcss-merge-rules": "^5.0.3", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.3", - "postcss-minify-params": "^5.0.2", - "postcss-minify-selectors": "^5.1.0", - "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.4", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.2", - "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.3", - "postcss-unique-selectors": "^5.0.2" + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4142,9 +3154,9 @@ } }, "node_modules/cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4165,23 +3177,77 @@ "node": ">=8.0.0" } }, - "node_modules/date-fns": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", - "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">=0.11" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dependencies": { "ms": "2.1.2" }, @@ -4194,51 +3260,39 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/define-properties": { @@ -4258,15 +3312,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -4276,34 +3321,10 @@ "node": ">=0.3.1" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "dependencies": { "domelementtype": "^2.0.1", @@ -4315,9 +3336,9 @@ } }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { @@ -4327,9 +3348,9 @@ ] }, "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "dependencies": { "domelementtype": "^2.2.0" @@ -4358,22 +3379,34 @@ "node_modules/duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==", "dev": true }, - "node_modules/easy-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", - "integrity": "sha1-hvmrTBAvA3G3KXuSplHVgkvIy3M=", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, - "optionalDependencies": { - "wcwidth": ">=1.0.1" + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/electron-to-chromium": { - "version": "1.4.27", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.27.tgz", - "integrity": "sha512-uZ95szi3zUbzRDx1zx/xnsCG+2xgZyy57pDOeaeO4r8zx5Dqe8Jv1ti8cunvBwJHVI5LzPuw8umKwZb3WKYxSQ==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", + "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==", "dev": true }, "node_modules/emoji-regex": { @@ -4383,58 +3416,25 @@ "dev": true }, "node_modules/engine.io-client": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", - "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", + "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", - "ws": "~8.11.0", + "ws": "~8.17.1", "xmlhttprequest-ssl": "~2.0.0" } }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "engines": { "node": ">=10.0.0" } }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -4454,50 +3454,57 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -4506,27 +3513,51 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-to-primitive": { @@ -4547,9 +3578,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -4567,9408 +3598,554 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=0.10.0" } }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "minimatch": "^5.0.1" } }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*" + "balanced-match": "^1.0.0" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "debug": "^3.2.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "node": ">=10" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/filesize": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz", + "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": ">=4" + "node": ">=8" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz", - "integrity": "sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-unused-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", - "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==", - "dev": true, - "dependencies": { - "eslint-rule-composer": "^0.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^6.0.0", - "eslint": "^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - } - } - }, - "node_modules/eslint-rule-composer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/js-yaml": { + "node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filesize": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz", - "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fraction.js": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", - "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generic-names": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", - "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", - "dev": true, - "dependencies": { - "loader-utils": "^3.2.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gzip-size/node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-server": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.0.0.tgz", - "integrity": "sha512-XTePIXAo5x72bI8SlKFSqsg7UuSHwsOa4+RJIe56YeMUvfTvGDy7TxFkTEhfIRmM/Dnf6x29ut541ythSBZdkQ==", - "dev": true, - "dependencies": { - "basic-auth": "^2.0.1", - "colors": "^1.4.0", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.5", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "bin": { - "http-server": "bin/http-server" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "dependencies": { - "import-from": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-from/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/iterare": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", - "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonrpc-lite": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonrpc-lite/-/jsonrpc-lite-2.2.0.tgz", - "integrity": "sha512-/cbbSxtZWs1O7R4tWqabrCM/t3N8qKUZMAg9IUqpPvUs6UyRvm6pCNYkskyKN/XU0UgffW+NY2ZRr8t0AknX7g==" - }, - "node_modules/kleur": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", - "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/maxmin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", - "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", - "dev": true, - "dependencies": { - "chalk": "^1.0.0", - "figures": "^1.0.1", - "gzip-size": "^3.0.0", - "pretty-bytes": "^3.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/maxmin/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/maxmin/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/maxmin/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/maxmin/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/maxmin/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/maxmin/node_modules/gzip-size": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/maxmin/node_modules/pretty-bytes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", - "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/maxmin/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/maxmin/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/microbundle": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/microbundle/-/microbundle-0.13.3.tgz", - "integrity": "sha512-nlP20UmyqGGeh6jhk8VaVFEoRlF+JAvnwixPLQUwHEcAF59ROJCyh34eylJzUAVNvF3yrCaHxIBv8lYcphDM1g==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.10", - "@babel/plugin-proposal-class-properties": "7.12.1", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.12.1", - "@babel/plugin-transform-flow-strip-types": "^7.12.10", - "@babel/plugin-transform-react-jsx": "^7.12.11", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/preset-env": "^7.12.11", - "@babel/preset-flow": "^7.12.1", - "@babel/preset-react": "^7.12.10", - "@rollup/plugin-alias": "^3.1.1", - "@rollup/plugin-babel": "^5.2.2", - "@rollup/plugin-commonjs": "^17.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.0.1", - "asyncro": "^3.0.0", - "autoprefixer": "^10.1.0", - "babel-plugin-macros": "^3.0.1", - "babel-plugin-transform-async-to-promises": "^0.8.15", - "babel-plugin-transform-replace-expressions": "^0.2.0", - "brotli-size": "^4.0.0", - "builtin-modules": "^3.1.0", - "camelcase": "^6.2.0", - "escape-string-regexp": "^4.0.0", - "filesize": "^6.1.0", - "gzip-size": "^6.0.0", - "kleur": "^4.1.3", - "lodash.merge": "^4.6.2", - "postcss": "^8.2.1", - "pretty-bytes": "^5.4.1", - "rollup": "^2.35.1", - "rollup-plugin-bundle-size": "^1.0.3", - "rollup-plugin-postcss": "^4.0.0", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.29.0", - "sade": "^1.7.4", - "terser": "^5.7.0", - "tiny-glob": "^0.2.8", - "tslib": "^2.0.3", - "typescript": "^4.1.3" - }, - "bin": { - "microbundle": "dist/cli.js" - } - }, - "node_modules/microbundle/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi-types": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-10.0.0.tgz", - "integrity": "sha512-Y8xOCT2eiKGYDzMW9R4x5cmfc3vGaaI4EL2pwhDmodWw1HlK18YcZ4uJxc7Rdp7/gGzAygzH9SXr6GKYIXbRcQ==", - "dev": true, - "peer": true - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", - "dev": true, - "dependencies": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", - "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-to-regexp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", - "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.2.tgz", - "integrity": "sha512-tSEe3NpqWARUTidDlF0LntPkdlhXqfDFuA1yslqpvvGAfpZ7oBaw+/QXd935NKm2U9p4PED0HDZlzmMk7fVC6g==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz", - "integrity": "sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", - "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", - "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", - "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", - "dev": true, - "dependencies": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz", - "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.1.0", - "stylehacks": "^5.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", - "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz", - "integrity": "sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==", - "dev": true, - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", - "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.6", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.0.tgz", - "integrity": "sha512-zoUttLDSsbWDinJM9jH37o7hulLRyEgH6fZm2PchxN7AZ8rkdWiALyNhnQ7+jg7cX9f10m6y5VhHsrjO0Mf/DA==", - "dev": true, - "dependencies": { - "generic-names": "^4.0.0", - "icss-replace-symbols": "^1.1.0", - "lodash.camelcase": "^4.3.0", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "string-hash": "^1.1.1" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", - "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", - "dev": true, - "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", - "dev": true, - "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", - "dev": true, - "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.4.tgz", - "integrity": "sha512-cNj3RzK2pgQQyNp7dzq0dqpUpQ/wYtdDZM3DepPmFjCmYIfceuD9VIAcOdvrNetjIU65g1B4uwdP/Krf6AFdXg==", - "dev": true, - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", - "dev": true, - "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz", - "integrity": "sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", - "dev": true, - "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", - "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", - "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.1.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz", - "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/promise.series": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", - "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", - "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", - "dev": true, - "dependencies": { - "glob": "^10.0.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", - "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.6.4" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.61.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", - "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-bundle-size": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-bundle-size/-/rollup-plugin-bundle-size-1.0.3.tgz", - "integrity": "sha512-aWj0Pvzq90fqbI5vN1IvUrlf4utOqy+AERYxwWjegH1G8PzheMnrRIgQ5tkwKVtQMDP0bHZEACW/zLDF+XgfXQ==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "maxmin": "^2.1.0" - } - }, - "node_modules/rollup-plugin-bundle-size/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup-plugin-bundle-size/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup-plugin-bundle-size/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup-plugin-bundle-size/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/rollup-plugin-bundle-size/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rollup-plugin-bundle-size/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/rollup-plugin-postcss": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz", - "integrity": "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "concat-with-sourcemaps": "^1.1.0", - "cssnano": "^5.0.1", - "import-cwd": "^3.0.0", - "p-queue": "^6.6.2", - "pify": "^5.0.0", - "postcss-load-config": "^3.0.0", - "postcss-modules": "^4.0.0", - "promise.series": "^0.2.0", - "resolve": "^1.19.0", - "rollup-pluginutils": "^2.8.2", - "safe-identifier": "^0.4.2", - "style-inject": "^0.3.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "postcss": "8.x" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-typescript2": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.29.0.tgz", - "integrity": "sha512-YytahBSZCIjn/elFugEGQR5qTsVhxhUwGZIsA9TmrSsC88qroGo65O5HZP/TTArH2dm0vUmYWhKchhwi2wL9bw==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.17.0", - "tslib": "2.0.1" - }, - "peerDependencies": { - "rollup": ">=1.26.3", - "typescript": ">=2.4.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true - }, - "node_modules/rollup-plugin-typescript2/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/sade": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", - "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", - "dev": true, - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", - "dev": true - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/secure-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", - "dev": true - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shiki": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", - "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", - "dev": true, - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, - "node_modules/shx": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.3.tgz", - "integrity": "sha512-nZJ3HFWVoTSyyB+evEKjJ1STiixGztlqwKLTUNV5KqMWtGey9fTd4KU1gdZ1X9BV6215pswQ/Jew9NsuS/fNDA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.4" - }, - "bin": { - "shx": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/socket.io-client": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz", - "integrity": "sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.5.2", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-inject": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", - "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", - "dev": true - }, - "node_modules/stylehacks": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", - "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.0", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", - "dev": true, - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "node_modules/tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", - "dev": true, - "dependencies": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedoc": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.6.tgz", - "integrity": "sha512-1rdionQMpOkpA58qfym1J+YD+ukyA1IEIa4VZahQI2ZORez7dhOvEyUotQL/8rSoMBopdzOS+vAIsORpQO4cTA==", - "dev": true, - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.3", - "shiki": "^0.14.7" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 16" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uid": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", - "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", - "dev": true, - "dependencies": { - "@lukeed/csprng": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", - "dev": true, - "dependencies": { - "qs": "^6.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/z-schema": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.2.tgz", - "integrity": "sha512-40TH47ukMHq5HrzkeVE40Ad7eIDKaRV2b+Qpi2prLc9X9eFJFzV7tMe5aH12e6avaSS/u5l653EQOv+J9PirPw==", - "dev": true, - "dependencies": { - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" - }, - "bin": { - "z-schema": "bin/z-schema" - }, - "engines": { - "node": ">=8.0.0" - }, - "optionalDependencies": { - "commander": "^2.7.1" - } - }, - "node_modules/z-schema/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true - } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", - "dev": true, - "requires": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "dev": true - }, - "@apidevtools/swagger-cli": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", - "dev": true, - "requires": { - "@apidevtools/swagger-parser": "^10.0.1", - "chalk": "^4.1.0", - "js-yaml": "^3.14.0", - "yargs": "^15.4.1" - } - }, - "@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true - }, - "@apidevtools/swagger-parser": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz", - "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==", - "dev": true, - "requires": { - "@apidevtools/json-schema-ref-parser": "^9.0.6", - "@apidevtools/openapi-schemas": "^2.0.4", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "z-schema": "^5.0.1" - } - }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", - "dev": true - }, - "@babel/core": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz", - "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helpers": "^7.16.5", - "@babel/parser": "^7.16.5", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz", - "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", - "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz", - "integrity": "sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz", - "integrity": "sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-member-expression-to-functions": "^7.16.5", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.5", - "@babel/helper-split-export-declaration": "^7.16.0" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", - "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz", - "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", - "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz", - "integrity": "sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz", - "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", - "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz", - "integrity": "sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-wrap-function": "^7.16.5", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz", - "integrity": "sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-member-expression-to-functions": "^7.16.5", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz", - "integrity": "sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" - } - }, - "@babel/helpers": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz", - "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==", - "dev": true, - "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" - } - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.16.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz", - "integrity": "sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", - "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", - "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz", - "integrity": "sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-remap-async-to-generator": "^7.16.5", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz", - "integrity": "sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz", - "integrity": "sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz", - "integrity": "sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz", - "integrity": "sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz", - "integrity": "sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz", - "integrity": "sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz", - "integrity": "sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz", - "integrity": "sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.5" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz", - "integrity": "sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz", - "integrity": "sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz", - "integrity": "sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz", - "integrity": "sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-create-class-features-plugin": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz", - "integrity": "sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.5.tgz", - "integrity": "sha512-Nrx+7EAJx1BieBQseZa2pavVH2Rp7hADK2xn7coYqVbWRu9C2OFizYcsKo6TrrqJkJl+qF/+Qqzrk/+XDu4GnA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz", - "integrity": "sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz", - "integrity": "sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz", - "integrity": "sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-remap-async-to-generator": "^7.16.5" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz", - "integrity": "sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz", - "integrity": "sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz", - "integrity": "sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-replace-supers": "^7.16.5", - "@babel/helper-split-export-declaration": "^7.16.0", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz", - "integrity": "sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz", - "integrity": "sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz", - "integrity": "sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz", - "integrity": "sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz", - "integrity": "sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.5.tgz", - "integrity": "sha512-skE02E/MptkZdBS4HwoRhjWXqeKQj0BWKEAPfPC+8R4/f6bjQqQ9Nftv/+HkxWwnVxh/E2NV9TNfzLN5H/oiBw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-flow": "^7.16.5" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz", - "integrity": "sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz", - "integrity": "sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz", - "integrity": "sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz", - "integrity": "sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz", - "integrity": "sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz", - "integrity": "sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-simple-access": "^7.16.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz", - "integrity": "sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-identifier": "^7.15.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz", - "integrity": "sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz", - "integrity": "sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz", - "integrity": "sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz", - "integrity": "sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-replace-supers": "^7.16.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz", - "integrity": "sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz", - "integrity": "sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz", - "integrity": "sha512-dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz", - "integrity": "sha512-+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/plugin-syntax-jsx": "^7.16.5", - "@babel/types": "^7.16.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz", - "integrity": "sha512-uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==", - "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.5" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz", - "integrity": "sha512-0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz", - "integrity": "sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz", - "integrity": "sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz", - "integrity": "sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz", - "integrity": "sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz", - "integrity": "sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz", - "integrity": "sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz", - "integrity": "sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz", - "integrity": "sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz", - "integrity": "sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/preset-env": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.5.tgz", - "integrity": "sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-async-generator-functions": "^7.16.5", - "@babel/plugin-proposal-class-properties": "^7.16.5", - "@babel/plugin-proposal-class-static-block": "^7.16.5", - "@babel/plugin-proposal-dynamic-import": "^7.16.5", - "@babel/plugin-proposal-export-namespace-from": "^7.16.5", - "@babel/plugin-proposal-json-strings": "^7.16.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.5", - "@babel/plugin-proposal-numeric-separator": "^7.16.5", - "@babel/plugin-proposal-object-rest-spread": "^7.16.5", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.5", - "@babel/plugin-proposal-optional-chaining": "^7.16.5", - "@babel/plugin-proposal-private-methods": "^7.16.5", - "@babel/plugin-proposal-private-property-in-object": "^7.16.5", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.5", - "@babel/plugin-transform-async-to-generator": "^7.16.5", - "@babel/plugin-transform-block-scoped-functions": "^7.16.5", - "@babel/plugin-transform-block-scoping": "^7.16.5", - "@babel/plugin-transform-classes": "^7.16.5", - "@babel/plugin-transform-computed-properties": "^7.16.5", - "@babel/plugin-transform-destructuring": "^7.16.5", - "@babel/plugin-transform-dotall-regex": "^7.16.5", - "@babel/plugin-transform-duplicate-keys": "^7.16.5", - "@babel/plugin-transform-exponentiation-operator": "^7.16.5", - "@babel/plugin-transform-for-of": "^7.16.5", - "@babel/plugin-transform-function-name": "^7.16.5", - "@babel/plugin-transform-literals": "^7.16.5", - "@babel/plugin-transform-member-expression-literals": "^7.16.5", - "@babel/plugin-transform-modules-amd": "^7.16.5", - "@babel/plugin-transform-modules-commonjs": "^7.16.5", - "@babel/plugin-transform-modules-systemjs": "^7.16.5", - "@babel/plugin-transform-modules-umd": "^7.16.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.5", - "@babel/plugin-transform-new-target": "^7.16.5", - "@babel/plugin-transform-object-super": "^7.16.5", - "@babel/plugin-transform-parameters": "^7.16.5", - "@babel/plugin-transform-property-literals": "^7.16.5", - "@babel/plugin-transform-regenerator": "^7.16.5", - "@babel/plugin-transform-reserved-words": "^7.16.5", - "@babel/plugin-transform-shorthand-properties": "^7.16.5", - "@babel/plugin-transform-spread": "^7.16.5", - "@babel/plugin-transform-sticky-regex": "^7.16.5", - "@babel/plugin-transform-template-literals": "^7.16.5", - "@babel/plugin-transform-typeof-symbol": "^7.16.5", - "@babel/plugin-transform-unicode-escapes": "^7.16.5", - "@babel/plugin-transform-unicode-regex": "^7.16.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.0", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.4.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.19.1", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/plugin-proposal-class-properties": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz", - "integrity": "sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.5", - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/preset-flow": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.5.tgz", - "integrity": "sha512-rmC6Nznp4V55N4Zfec87jwd14TdREqwKVJFM/6Z2wTwoeZQr56czjaPRCezqzqc8TsHF7aLP1oczjadIQ058gw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-flow-strip-types": "^7.16.5" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz", - "integrity": "sha512-3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.5", - "@babel/plugin-transform-react-jsx": "^7.16.5", - "@babel/plugin-transform-react-jsx-development": "^7.16.5", - "@babel/plugin-transform-react-pure-annotations": "^7.16.5" - } - }, - "@babel/runtime": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz", - "integrity": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - } - } - }, - "@babel/traverse": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", - "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.5", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - } - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "@lukeed/csprng": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", - "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", - "dev": true - }, - "@nestjs/axios": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.2.tgz", - "integrity": "sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ==", - "dev": true, - "requires": {} - }, - "@nestjs/common": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz", - "integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", - "dev": true, - "requires": { - "iterare": "1.2.1", - "tslib": "2.6.2", - "uid": "2.0.2" - } - }, - "@nestjs/core": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz", - "integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", - "dev": true, - "requires": { - "@nuxtjs/opencollective": "0.3.2", - "fast-safe-stringify": "2.1.1", - "iterare": "1.2.1", - "path-to-regexp": "3.2.0", - "tslib": "2.6.2", - "uid": "2.0.2" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@nuxtjs/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - } - }, - "@openapitools/openapi-generator-cli": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.13.4.tgz", - "integrity": "sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww==", - "dev": true, - "requires": { - "@nestjs/axios": "3.0.2", - "@nestjs/common": "10.3.0", - "@nestjs/core": "10.3.0", - "@nuxtjs/opencollective": "0.3.2", - "axios": "1.6.8", - "chalk": "4.1.2", - "commander": "8.3.0", - "compare-versions": "4.1.4", - "concurrently": "6.5.1", - "console.table": "0.10.0", - "fs-extra": "10.1.0", - "glob": "7.2.3", - "https-proxy-agent": "7.0.4", - "inquirer": "8.2.6", - "lodash": "4.17.21", - "reflect-metadata": "0.1.13", - "rxjs": "7.8.1", - "tslib": "2.6.2" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "concurrently": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", - "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "date-fns": "^2.16.1", - "lodash": "^4.17.21", - "rxjs": "^6.6.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^16.2.0" - }, - "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "@pkgr/core": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz", - "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==", - "dev": true - }, - "@rollup/plugin-alias": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.8.tgz", - "integrity": "sha512-tf7HeSs/06wO2LPqKNY3Ckbvy0JRe7Jyn98bXnt/gfrxbe+AJucoNJlsEVi9sdgbQtXemjbakCpO/76JVgnHpA==", - "dev": true, - "requires": { - "slash": "^3.0.0" - } - }, - "@rollup/plugin-babel": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", - "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - } - }, - "@rollup/plugin-commonjs": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", - "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - } - }, - "@rollup/plugin-json": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", - "integrity": "sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.8" - } - }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - } - } - }, - "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" - }, - "@stacks/eslint-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@stacks/eslint-config/-/eslint-config-2.0.0.tgz", - "integrity": "sha512-GrRiJE7nadre+wCGAkaxCmHGD8tEYOtVW/cjjMdh/H37yl3vGj/lX723MfiXj/YcQDJ1qs/8V9Rx9b4VsFp10Q==", - "dev": true, - "requires": { - "@stacks/prettier-config": "^0.0.10", - "@typescript-eslint/eslint-plugin": ">=6", - "@typescript-eslint/parser": ">=6", - "eslint": ">=8", - "eslint-config-prettier": "^9.0.0", - "eslint-import-resolver-typescript": ">=3", - "eslint-plugin-import": ">=2", - "eslint-plugin-prettier": ">=5", - "eslint-plugin-unused-imports": ">=3" - } - }, - "@stacks/prettier-config": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/@stacks/prettier-config/-/prettier-config-0.0.10.tgz", - "integrity": "sha512-MrYWGEgO/mYR8TOZIKknQEHbFQZ5VyAD/s8eF2Yxr6Lgalt2alVEh+6ODehVP2uepkyXPmJzLbaQYs8/L4E78Q==", - "dev": true, - "requires": { - "prettier": "2.5" - }, - "dependencies": { - "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true - } - } - }, - "@stacks/stacks-blockchain-api-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@stacks/stacks-blockchain-api-types/-/stacks-blockchain-api-types-1.0.4.tgz", - "integrity": "sha512-PjZaZFcsADrGqcAYnW9xkwJIAt8gEgkaBP7R9wKYMACFDuEwoHZ22NntiI636wRf1bMkDIa3T/+4naP6jv5f/A==" - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/node": { - "version": "20.10.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz", - "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==", - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", - "dev": true - }, - "@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.17.0.tgz", - "integrity": "sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.17.0", - "@typescript-eslint/type-utils": "6.17.0", - "@typescript-eslint/utils": "6.17.0", - "@typescript-eslint/visitor-keys": "6.17.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/parser": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.17.0.tgz", - "integrity": "sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "6.17.0", - "@typescript-eslint/types": "6.17.0", - "@typescript-eslint/typescript-estree": "6.17.0", - "@typescript-eslint/visitor-keys": "6.17.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.17.0.tgz", - "integrity": "sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.17.0", - "@typescript-eslint/visitor-keys": "6.17.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.17.0.tgz", - "integrity": "sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "6.17.0", - "@typescript-eslint/utils": "6.17.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/types": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.17.0.tgz", - "integrity": "sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.17.0.tgz", - "integrity": "sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.17.0", - "@typescript-eslint/visitor-keys": "6.17.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.17.0.tgz", - "integrity": "sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.17.0", - "@typescript-eslint/types": "6.17.0", - "@typescript-eslint/typescript-estree": "6.17.0", - "semver": "^7.5.4" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.17.0.tgz", - "integrity": "sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.17.0", - "eslint-visitor-keys": "^3.4.1" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", - "dev": true - }, - "agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - } - }, - "array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - } - }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "asyncro": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/asyncro/-/asyncro-3.0.0.tgz", - "integrity": "sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==", - "dev": true - }, - "autoprefixer": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", - "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", - "dev": true, - "requires": { - "browserslist": "^4.17.5", - "caniuse-lite": "^1.0.30001272", - "fraction.js": "^4.1.1", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.1.0" - } - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", - "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.18.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0" - } - }, - "babel-plugin-transform-async-to-promises": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-promises/-/babel-plugin-transform-async-to-promises-0.8.17.tgz", - "integrity": "sha512-MAijrdLcXjZBkET+n4GA9g96Wt5AibTHRKHWU3Zuuenvkge3QgrYiYfXsNcHZbQzJ6XO73l4MRMDNP+ZE77u5A==", - "dev": true - }, - "babel-plugin-transform-replace-expressions": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-replace-expressions/-/babel-plugin-transform-replace-expressions-0.2.0.tgz", - "integrity": "sha512-Eh1rRd9hWEYgkgoA3D0kGp7xJ/wgVshgsqmq60iC4HVWD+Lux+fNHSHBa2v1Hsv+dHflShC71qKhiH40OiPtDA==", - "dev": true, - "requires": { - "@babel/parser": "^7.3.3" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brotli-size": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz", - "integrity": "sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==", - "dev": true, - "requires": { - "duplexer": "0.1.1" - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "dev": true - }, - "call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "requires": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001292", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001292.tgz", - "integrity": "sha512-jnT4Tq0Q4ma+6nncYQVe7d73kmDmE9C3OGTx3MvW7lBM/eY1S1DZTMBON7dqV481RhNiS5OxD7k9JQvmDOTirw==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-versions": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz", - "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "concurrently": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", - "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "date-fns": "^2.29.1", - "lodash": "^4.17.21", - "rxjs": "^7.0.0", - "shell-quote": "^1.7.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^17.3.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "console.table": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", - "integrity": "sha1-CRcCVYiHW+/XDPLv9L7yxuLXXQQ=", - "dev": true, - "requires": { - "easy-table": "1.1.0" - } - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "core-js-compat": { - "version": "3.20.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.1.tgz", - "integrity": "sha512-AVhKZNpqMV3Jz8hU0YEXXE06qoxtQGsAqU0u1neUngz5IusDJRX/ZJ6t3i7mS7QxNyEONbCo14GprkBrxPlTZA==", - "dev": true, - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "corser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-declaration-sorter": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", - "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", - "dev": true, - "requires": { - "timsort": "^0.3.0" - } - }, - "css-select": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz", - "integrity": "sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.14.tgz", - "integrity": "sha512-qzhRkFvBhv08tbyKCIfWbxBXmkIpLl1uNblt8SpTHkgLfON5OCPX/CCnkdNmEosvo8bANQYmTTMEgcVBlisHaw==", - "dev": true, - "requires": { - "cssnano-preset-default": "^5.1.9", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.9.tgz", - "integrity": "sha512-RhkEucqlQ+OxEi14K1p8gdXcMQy1mSpo7P1oC44oRls7BYIj8p+cht4IFBFV3W4iOjTP8EUB33XV1fX9KhDzyA==", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.2", - "postcss-convert-values": "^5.0.2", - "postcss-discard-comments": "^5.0.1", - "postcss-discard-duplicates": "^5.0.1", - "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.4", - "postcss-merge-rules": "^5.0.3", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.3", - "postcss-minify-params": "^5.0.2", - "postcss-minify-selectors": "^5.1.0", - "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.4", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.2", - "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.3", - "postcss-unique-selectors": "^5.0.2" - } - }, - "cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", - "dev": true, - "requires": {} - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - } - }, - "date-fns": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", - "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "easy-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", - "integrity": "sha1-hvmrTBAvA3G3KXuSplHVgkvIy3M=", - "dev": true, - "requires": { - "wcwidth": ">=1.0.1" - } - }, - "electron-to-chromium": { - "version": "1.4.27", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.27.tgz", - "integrity": "sha512-uZ95szi3zUbzRDx1zx/xnsCG+2xgZyy57pDOeaeO4r8zx5Dqe8Jv1ti8cunvBwJHVI5LzPuw8umKwZb3WKYxSQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "engine.io-client": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", - "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - }, - "dependencies": { - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "requires": {} - } - } - }, - "engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==" - }, - "enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - } - }, - "es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "requires": {} - }, - "eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" - } - }, - "eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, - "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-plugin-prettier": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz", - "integrity": "sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" - } - }, - "eslint-plugin-unused-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", - "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==", - "dev": true, - "requires": { - "eslint-rule-composer": "^0.3.0" - } - }, - "eslint-rule-composer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "filesize": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz", - "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } } }, - "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true - }, - "follow-redirects": { + "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } }, - "for-each": { + "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.3" } }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "fraction.js": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", - "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", - "dev": true + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } }, - "fs-extra": { + "node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "function.prototype.name": { + "node_modules/function.prototype.name": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "functions-have-names": { + "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "generic-names": { + "node_modules/generic-names": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", "dev": true, - "requires": { + "dependencies": { "loader-utils": "^3.2.0" } }, - "gensync": { + "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, - "requires": { + "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, - "requires": { - "resolve-pkg-maps": "^1.0.0" + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "glob": { + "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "requires": { + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "requires": { - "type-fest": "^0.20.2" + "engines": { + "node": ">=4" } }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, - "requires": { - "define-properties": "^1.1.3" + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "globalyzer": { + "node_modules/globalyzer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", "dev": true }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "globrex": { + "node_modules/globrex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", "dev": true }, - "gopd": { + "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "requires": { + "dependencies": { "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "gzip-size": { + "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, - "requires": { + "dependencies": { "duplexer": "^0.1.2" }, - "dependencies": { - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "has-ansi": { + "node_modules/gzip-size/node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "has-bigints": { + "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-flag": { + "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "requires": { - "get-intrinsic": "^1.2.2" + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "requires": { - "has-symbols": "^1.0.2" + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "he": { + "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true + "dev": true, + "bin": { + "he": "bin/he" + } }, - "html-encoding-sniffer": { + "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, - "requires": { + "dependencies": { "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "http-proxy": { + "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "requires": { + "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "http-server": { + "node_modules/http-server": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.0.0.tgz", "integrity": "sha512-XTePIXAo5x72bI8SlKFSqsg7UuSHwsOa4+RJIe56YeMUvfTvGDy7TxFkTEhfIRmM/Dnf6x29ut541ythSBZdkQ==", "dev": true, - "requires": { + "dependencies": { "basic-auth": "^2.0.1", "colors": "^1.4.0", "corser": "^2.0.1", @@ -13982,702 +4159,873 @@ "secure-compare": "3.0.1", "union": "~0.5.0", "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=12" } }, - "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, - "requires": { + "dependencies": { "agent-base": "^7.0.2", "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "icss-replace-symbols": { + "node_modules/icss-replace-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", "dev": true }, - "icss-utils": { + "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, - "requires": {} - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "import-cwd": { + "node_modules/import-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", "dev": true, - "requires": { + "dependencies": { "import-from": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "import-fresh": { + "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "requires": { + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "import-from": { + "node_modules/import-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", "dev": true, - "requires": { + "dependencies": { "resolve-from": "^5.0.0" }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "node_modules/import-from/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/index-to-position": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", + "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" - } - }, - "internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, - "requires": { - "get-intrinsic": "^1.2.2", + "dependencies": { + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-bigint": { + "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "requires": { + "dependencies": { "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-boolean-object": { + "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, - "requires": { - "hasown": "^2.0.0" + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-fullwidth-code-point": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { - "is-extglob": "^2.1.1" + "engines": { + "node": ">=8" } }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-module": { + "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-number-object": { + "node_modules/is-number-object": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-reference": { + "node_modules/is-reference": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, - "requires": { + "dependencies": { "@types/estree": "*" } }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, - "requires": { - "call-bind": "^1.0.2" + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-string": { + "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-symbol": { + "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "requires": { - "which-typed-array": "^1.1.11" + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-weakref": { + "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "requires": { - "call-bind": "^1.0.2" + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "isarray": { + "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "iterare": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", - "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", - "dev": true + "node_modules/jackspeak": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } }, - "jest-worker": { + "node_modules/jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsesc": { + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json-parse-even-better-errors": { + "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "json5": { + "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "jsonfile": { + "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.6", + "dependencies": { "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "jsonrpc-lite": { + "node_modules/jsonrpc-lite": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/jsonrpc-lite/-/jsonrpc-lite-2.2.0.tgz", "integrity": "sha512-/cbbSxtZWs1O7R4tWqabrCM/t3N8qKUZMAg9IUqpPvUs6UyRvm6pCNYkskyKN/XU0UgffW+NY2ZRr8t0AknX7g==" }, - "kleur": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", - "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "engines": { + "node": ">=6" } }, - "lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", - "dev": true + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "lines-and-columns": { + "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "dependencies": { + "uc.micro": "^2.0.0" + } }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { - "p-locate": "^5.0.0" + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.camelcase": { + "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, - "lodash.debounce": { + "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "lodash.isequal": { + "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", "dev": true }, - "lodash.memoize": { + "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, - "lodash.merge": { + "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.uniq": { + "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "requires": { - "yallist": "^4.0.0" + "dependencies": { + "yallist": "^3.0.2" } }, - "lunr": { + "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, - "requires": { - "sourcemap-codec": "^1.4.4" + "dependencies": { + "sourcemap-codec": "^1.4.8" } }, - "make-dir": { + "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "requires": { + "dependencies": { "semver": "^6.0.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "make-error": { + "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/maxmin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", + "integrity": "sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw==", + "dev": true, + "dependencies": { + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^3.0.0", + "pretty-bytes": "^3.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/maxmin/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maxmin/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maxmin/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maxmin/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/maxmin/node_modules/gzip-size": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", + "integrity": "sha512-6s8trQiK+OMzSaCSVXX+iqIcLV9tC+E73jrJrJTyS4h/AJhlxHvzFKqM1YLDJWRGgHX8uLkBeXkA0njNj39L4w==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/maxmin/node_modules/pretty-bytes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", + "integrity": "sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "maxmin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", - "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", + "node_modules/maxmin/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, - "requires": { - "chalk": "^1.0.0", - "figures": "^1.0.1", - "gzip-size": "^3.0.0", - "pretty-bytes": "^3.0.0" - }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "gzip-size": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", - "dev": true, - "requires": { - "duplexer": "^0.1.1" - } - }, - "pretty-bytes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", - "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maxmin/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" } }, - "mdn-data": { + "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, - "merge-stream": { + "node_modules/mdurl": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "microbundle": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/microbundle/-/microbundle-0.13.3.tgz", - "integrity": "sha512-nlP20UmyqGGeh6jhk8VaVFEoRlF+JAvnwixPLQUwHEcAF59ROJCyh34eylJzUAVNvF3yrCaHxIBv8lYcphDM1g==", + "node_modules/microbundle": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/microbundle/-/microbundle-0.15.1.tgz", + "integrity": "sha512-aAF+nwFbkSIJGfrJk+HyzmJOq3KFaimH6OIFBU6J2DPjQeg1jXIYlIyEv81Gyisb9moUkudn+wj7zLNYMOv75Q==", "dev": true, - "requires": { + "dependencies": { "@babel/core": "^7.12.10", "@babel/plugin-proposal-class-properties": "7.12.1", "@babel/plugin-syntax-import-meta": "^7.10.4", @@ -14693,10 +5041,11 @@ "@rollup/plugin-commonjs": "^17.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^11.0.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.2", "asyncro": "^3.0.0", "autoprefixer": "^10.1.0", "babel-plugin-macros": "^3.0.1", - "babel-plugin-transform-async-to-promises": "^0.8.15", + "babel-plugin-transform-async-to-promises": "^0.8.18", "babel-plugin-transform-replace-expressions": "^0.2.0", "brotli-size": "^4.0.0", "builtin-modules": "^3.1.0", @@ -14712,600 +5061,853 @@ "rollup-plugin-bundle-size": "^1.0.3", "rollup-plugin-postcss": "^4.0.0", "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.29.0", + "rollup-plugin-typescript2": "^0.32.0", + "rollup-plugin-visualizer": "^5.6.0", "sade": "^1.7.4", "terser": "^5.7.0", "tiny-glob": "^0.2.8", "tslib": "^2.0.3", "typescript": "^4.1.3" }, - "dependencies": { - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - } + "bin": { + "microbundle": "dist/cli.js" } }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "node_modules/microbundle/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" } }, - "mime": { + "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "requires": { - "mime-db": "1.52.0" + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "requires": { - "minimist": "^1.2.5" + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "mri": { + "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, - "normalize-range": { + "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "normalize-url": { + "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "requires": { + "dependencies": { "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "number-is-nan": { + "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "object.assign": { + "node_modules/object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "dependencies": { + "wrappy": "1" } }, - "object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "node_modules/openapi-fetch": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.10.5.tgz", + "integrity": "sha512-lOHWzQDYrMakHSqAOqJJGawitSGQzLM8w8zXTrpffe7u9aWqzFvhdJJNqfcW1EzaXtNNdPdMzXaFLdrjgn68ow==", + "dependencies": { + "openapi-typescript-helpers": "^0.0.11" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/openapi-typescript": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.3.0.tgz", + "integrity": "sha512-EkljRjYWOPwGXiK++uI9MkGv2Y7uhbkZbi9V1z3r3EpmWVO6aFTHXSLNvxIWo6UT6LCTYgEYkUB3BWQjwwXthg==", "dev": true, - "requires": { - "wrappy": "1" + "dependencies": { + "@redocly/openapi-core": "^1.16.0", + "ansi-colors": "^4.1.3", + "parse-json": "^8.1.0", + "supports-color": "^9.4.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "openapi-typescript": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.x" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/openapi-typescript-helpers": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.0.11.tgz", + "integrity": "sha512-xofUHlVFq+BMquf3nh9I8N2guHckW6mrDO/F3kaFgrL7MGbjldDnQ9TIT+rkH/+H0LiuO+RuZLnNmsJwsjwUKg==" + }, + "node_modules/openapi-typescript/node_modules/parse-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", + "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", "dev": true, - "requires": { - "mimic-fn": "^2.1.0" + "dependencies": { + "@babel/code-frame": "^7.22.13", + "index-to-position": "^0.1.2", + "type-fest": "^4.7.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "openapi-types": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-10.0.0.tgz", - "integrity": "sha512-Y8xOCT2eiKGYDzMW9R4x5cmfc3vGaaI4EL2pwhDmodWw1HlK18YcZ4uJxc7Rdp7/gGzAygzH9SXr6GKYIXbRcQ==", + "node_modules/openapi-typescript/node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", "dev": true, - "peer": true + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } }, - "opener": { + "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "bin": { + "opener": "bin/opener-bin.js" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true - }, - "p-finally": { + "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { - "yocto-queue": "^0.1.0" + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { - "p-limit": "^3.0.2" + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "p-queue": { + "node_modules/p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, - "requires": { + "dependencies": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-timeout": { + "node_modules/p-timeout": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, - "requires": { + "dependencies": { "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" } }, - "parent-module": { + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-json": { + "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "path-exists": { + "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, - "requires": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" - }, "dependencies": { - "lru-cache": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", - "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==", - "dev": true - } + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "path-to-regexp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", - "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", - "dev": true + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "dev": true, + "engines": { + "node": "20 || >=22" + } }, - "path-type": { + "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pify": { + "node_modules/pify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "lodash": "^4.17.14" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" } }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "engines": { + "node": ">= 0.4" } }, - "postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" } }, - "postcss-colormin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.2.tgz", - "integrity": "sha512-tSEe3NpqWARUTidDlF0LntPkdlhXqfDFuA1yslqpvvGAfpZ7oBaw+/QXd935NKm2U9p4PED0HDZlzmMk7fVC6g==", + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", "dev": true, - "requires": { - "browserslist": "^4.16.6", + "dependencies": { + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-convert-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz", - "integrity": "sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==", + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-discard-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", - "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", "dev": true, - "requires": {} + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-duplicates": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", - "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", "dev": true, - "requires": {} + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-empty": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", - "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", "dev": true, - "requires": {} + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", "dev": true, - "requires": {} + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "dev": true, - "requires": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", + "dependencies": { + "lilconfig": "^2.0.5", "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "postcss-merge-longhand": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz", - "integrity": "sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==", + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0", - "stylehacks": "^5.0.1" + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-merge-rules": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", - "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", "dev": true, - "requires": { - "browserslist": "^4.16.6", + "dependencies": { + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", + "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-gradients": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz", - "integrity": "sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==", + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dev": true, - "requires": { + "dependencies": { "colord": "^2.9.1", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-params": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", - "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.6", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", + "dependencies": { "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-modules": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.0.tgz", - "integrity": "sha512-zoUttLDSsbWDinJM9jH37o7hulLRyEgH6fZm2PchxN7AZ8rkdWiALyNhnQ7+jg7cX9f10m6y5VhHsrjO0Mf/DA==", + "node_modules/postcss-modules": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.1.tgz", + "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", "dev": true, - "requires": { + "dependencies": { "generic-names": "^4.0.0", "icss-replace-symbols": "^1.1.0", "lodash.camelcase": "^4.3.0", @@ -15314,538 +5916,664 @@ "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "string-hash": "^1.1.1" + }, + "peerDependencies": { + "postcss": "^8.0.0" } }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, - "requires": {} + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-values": { + "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-normalize-charset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", - "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", "dev": true, - "requires": {} + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dev": true, - "requires": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-url": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.4.tgz", - "integrity": "sha512-cNj3RzK2pgQQyNp7dzq0dqpUpQ/wYtdDZM3DepPmFjCmYIfceuD9VIAcOdvrNetjIU65g1B4uwdP/Krf6AFdXg==", + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", "dev": true, - "requires": { + "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0" + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-reduce-initial": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz", - "integrity": "sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==", + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", "dev": true, - "requires": { - "browserslist": "^4.16.6", + "dependencies": { + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", "dev": true, - "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-selector-parser": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", - "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, - "requires": { + "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-svgo": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.3.tgz", - "integrity": "sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==", + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", "dev": true, - "requires": { - "postcss-value-parser": "^4.1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-unique-selectors": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz", - "integrity": "sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==", + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", + "dependencies": { "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-value-parser": { + "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, - "pretty-bytes": { + "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "promise.series": { + "node_modules/promise.series": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", - "integrity": "sha1-LMfr6Vn8OmYZwEq029yeRS2GS70=", - "dev": true - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "integrity": "sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==", "dev": true, - "requires": { - "side-channel": "^1.0.4" + "engines": { + "node": ">=0.12" } }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "requires": { - "safe-buffer": "^5.1.0" + "engines": { + "node": ">=6" } }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "engines": { + "node": ">=6" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, - "requires": { - "resolve": "^1.1.6" + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } }, - "regenerate": { + "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, - "regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, - "requires": { + "dependencies": { "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "^7.8.4" } }, - "regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, - "requires": { + "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" } }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "requires": { + "dependencies": { "jsesc": "~0.5.0" }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" } }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "resolve": { + "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "requires": { + "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "rimraf": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", - "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, - "requires": { - "glob": "^10.0.0" + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", - "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.6.4" - } - }, - "minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "rollup": { - "version": "2.61.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", - "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==", + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, - "requires": { + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { "fsevents": "~2.3.2" } }, - "rollup-plugin-bundle-size": { + "node_modules/rollup-plugin-bundle-size": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/rollup-plugin-bundle-size/-/rollup-plugin-bundle-size-1.0.3.tgz", "integrity": "sha512-aWj0Pvzq90fqbI5vN1IvUrlf4utOqy+AERYxwWjegH1G8PzheMnrRIgQ5tkwKVtQMDP0bHZEACW/zLDF+XgfXQ==", "dev": true, - "requires": { + "dependencies": { "chalk": "^1.1.3", "maxmin": "^2.1.0" + } + }, + "node_modules/rollup-plugin-bundle-size/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-plugin-bundle-size/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-plugin-bundle-size/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-plugin-bundle-size/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/rollup-plugin-bundle-size/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-plugin-bundle-size/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" } }, - "rollup-plugin-postcss": { + "node_modules/rollup-plugin-postcss": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz", "integrity": "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==", "dev": true, - "requires": { + "dependencies": { "chalk": "^4.1.0", "concat-with-sourcemaps": "^1.1.0", "cssnano": "^5.0.1", @@ -15859,496 +6587,583 @@ "rollup-pluginutils": "^2.8.2", "safe-identifier": "^0.4.2", "style-inject": "^0.3.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "8.x" } }, - "rollup-plugin-terser": { + "node_modules/rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", "serialize-javascript": "^4.0.0", "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" } }, - "rollup-plugin-typescript2": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.29.0.tgz", - "integrity": "sha512-YytahBSZCIjn/elFugEGQR5qTsVhxhUwGZIsA9TmrSsC88qroGo65O5HZP/TTArH2dm0vUmYWhKchhwi2wL9bw==", + "node_modules/rollup-plugin-typescript2": { + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.32.1.tgz", + "integrity": "sha512-RanO8bp1WbeMv0bVlgcbsFNCn+Y3rX7wF97SQLDxf0fMLsg0B/QFF005t4AsGUcDgF3aKJHoqt4JF2xVaABeKw==", "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.17.0", - "tslib": "2.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } + "dependencies": { + "@rollup/pluginutils": "^4.1.2", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.0.0", + "resolve": "^1.20.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "rollup": ">=1.26.3", + "typescript": ">=2.4.0" } }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, - "requires": { - "estree-walker": "^0.6.1" + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-visualizer": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", + "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "dev": true, "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true } } }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "node_modules/rollup-plugin-visualizer/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", "dev": true, - "requires": { - "queue-microtask": "^1.2.2" + "dependencies": { + "estree-walker": "^0.6.1" } }, - "rxjs": { + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "requires": { + "dependencies": { "tslib": "^2.1.0" } }, - "sade": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", - "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, - "requires": { + "dependencies": { "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" } }, - "safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "safe-identifier": { + "node_modules/safe-identifier": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", "dev": true }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "secure-compare": { + "node_modules/secure-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", "dev": true }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "requires": { - "lru-cache": "^6.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "serialize-javascript": { + "node_modules/serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "requires": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, - "requires": { - "define-data-property": "^1.0.1", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "shebang-command": { + "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", - "dev": true - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "engines": { + "node": ">=8" } }, - "shiki": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", - "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, - "requires": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "shx": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.3.tgz", - "integrity": "sha512-nZJ3HFWVoTSyyB+evEKjJ1STiixGztlqwKLTUNV5KqMWtGey9fTd4KU1gdZ1X9BV6215pswQ/Jew9NsuS/fNDA==", + "node_modules/shiki": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.12.1.tgz", + "integrity": "sha512-nwmjbHKnOYYAe1aaQyEBHvQymJgfm86ZSS7fT8OaPRr4sbAcBNz7PbfAikMEFSDQ6se2j2zobkXvVKcBOm0ysg==", "dev": true, - "requires": { - "minimist": "^1.2.3", - "shelljs": "^0.8.4" + "dependencies": { + "@shikijs/core": "1.12.1", + "@types/hast": "^3.0.4" } }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "socket.io-client": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz", - "integrity": "sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==", - "requires": { + "node_modules/socket.io-client": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", + "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", "engine.io-client": "~6.5.2", "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "socket.io-parser": { + "node_modules/socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "requires": { + "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "source-map-support": { + "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, - "sourcemap-codec": { + "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", "dev": true }, - "spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", "dev": true }, - "stable": { + "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, - "requires": { - "safe-buffer": "~5.2.0" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-ansi": { + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-inject": { + "node_modules/style-inject": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", "dev": true }, - "stylehacks": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", - "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dev": true, - "requires": { - "browserslist": "^4.16.0", + "dependencies": { + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "supports-preserve-symlinks-flag": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "svgo": { + "node_modules/svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, - "requires": { + "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", @@ -16357,127 +7172,77 @@ "picocolors": "^1.0.0", "stable": "^0.1.8" }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", - "dev": true, - "requires": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" } }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "node_modules/terser": { + "version": "5.31.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", + "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "tiny-glob": { + "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", "dev": true, - "requires": { + "dependencies": { "globalyzer": "0.1.0", "globrex": "^0.1.2" } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { + "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "requires": { - "is-number": "^7.0.0" + "engines": { + "node": ">=4" } }, - "tr46": { + "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, - "tree-kill": { + "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, - "requires": {} + "bin": { + "tree-kill": "cli.js" + } }, - "ts-node": { + "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, - "requires": { + "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", @@ -16491,494 +7256,548 @@ "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" - } - }, - "tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true } } }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/type-fest": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.23.0.tgz", + "integrity": "sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w==", "dev": true, - "requires": { - "prelude-ls": "^1.2.1" + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } }, - "typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, - "requires": { - "call-bind": "^1.0.2", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "dependencies": { + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedoc": { + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.5.tgz", + "integrity": "sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==", + "dev": true, + "dependencies": { + "lunr": "^2.3.9", + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "shiki": "^1.9.1", + "yaml": "^2.4.5" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" } }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "typedoc": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.6.tgz", - "integrity": "sha512-1rdionQMpOkpA58qfym1J+YD+ukyA1IEIa4VZahQI2ZORez7dhOvEyUotQL/8rSoMBopdzOS+vAIsORpQO4cTA==", + "node_modules/typedoc/node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, - "requires": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.3", - "shiki": "^0.14.7" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" } }, - "typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true - }, - "uid": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", - "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, - "requires": { - "@lukeed/csprng": "^1.0.0" + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, - "unbox-primitive": { + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true + }, + "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "undici-types": { + "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true }, - "unicode-canonical-property-names-ecmascript": { + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-match-property-ecmascript": { + "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "requires": { + "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "union": { + "node_modules/union": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", "dev": true, - "requires": { + "dependencies": { "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "universalify": { + "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "url-join": { + "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "v8-compile-cache-lib": { + "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", - "dev": true - }, - "vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "webidl-conversions": { + "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, - "whatwg-encoding": { + "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, - "requires": { + "dependencies": { "iconv-lite": "0.6.3" }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } + "engines": { + "node": ">=12" } }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "which": { + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-boxed-primitive": { + "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "requires": { + "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "requires": {} + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "xmlhttprequest-ssl": { + "node_modules/xmlhttprequest-ssl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "engines": { + "node": ">=0.4.0" + } }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "yaml": { + "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", "dev": true }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - } + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" } }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } + "engines": { + "node": ">=12" } }, - "yn": { + "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "z-schema": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.2.tgz", - "integrity": "sha512-40TH47ukMHq5HrzkeVE40Ad7eIDKaRV2b+Qpi2prLc9X9eFJFzV7tMe5aH12e6avaSS/u5l653EQOv+J9PirPw==", "dev": true, - "requires": { - "commander": "^2.7.1", - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true - } + "engines": { + "node": ">=6" } } } diff --git a/client/package.json b/client/package.json index c0bb38be7..ad03061a6 100644 --- a/client/package.json +++ b/client/package.json @@ -24,49 +24,30 @@ "build:browser:watch": "npm run build:browser -- watch", "start": "concurrently npm:build:browser:watch npm:open", "test": "ts-node test/test.ts", - "lint": "eslint . --ext .ts -f unix", - "lint:prettier": "prettier --check ./src/**/*.ts", - "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx -f unix --fix && prettier --write --check src/**/*.ts", "open": "http-server -o 9222 -o index.html", "prep-openapi": "npm run build --prefix ../docs", - "generate-openapi": "npm run prep-openapi && rimraf ./src/generated && openapi-generator-cli generate --skip-validate-spec -g typescript-fetch --additional-properties=withInterfaces=true,typescriptThreePlus=true,supportsES6=true,legacyDiscriminatorBehavior=false,enumPropertyNaming=original,modelPropertyNaming=original -i ../docs/.tmp/openapi.json -o ./src/generated", - "openapi-generator-version": "openapi-generator-cli version-manager list", + "generate-openapi": "npm run prep-openapi && openapi-typescript --default-non-nullable=false ../docs/.tmp/openapi.yaml -o ./src/generated/schema.d.ts", "generate:docs": "npm run generate-openapi && typedoc src/**/*.ts" }, - "prettier": "@stacks/prettier-config", "files": [ "src", "lib" ], "dependencies": { - "@stacks/stacks-blockchain-api-types": "*", - "@types/ws": "7.4.7", - "cross-fetch": "3.1.5", - "eventemitter3": "4.0.7", - "jsonrpc-lite": "2.2.0", - "socket.io-client": "4.7.3", - "ws": "8.16.0" + "eventemitter3": "^4.0.7", + "jsonrpc-lite": "^2.2.0", + "openapi-fetch": "^0.10.5", + "socket.io-client": "^4.7.5" }, "devDependencies": { - "@apidevtools/swagger-cli": "4.0.4", - "@openapitools/openapi-generator-cli": "2.13.4", - "@stacks/eslint-config": "2.0.0", - "@stacks/prettier-config": "0.0.10", "@types/node": "20.10.6", - "@typescript-eslint/eslint-plugin": "6.17.0", - "@typescript-eslint/parser": "6.17.0", "concurrently": "7.6.0", - "eslint": "8.56.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-prettier": "5.1.2", - "eslint-plugin-unused-imports": "3.0.0", "http-server": "14.0.0", - "microbundle": "0.13.3", - "prettier": "3.1.1", - "rimraf": "5.0.0", - "shx": "0.3.3", + "microbundle": "0.15.1", + "openapi-typescript": "7.3.0", + "rimraf": "6.0.1", "ts-node": "10.9.2", - "typedoc": "0.25.6", - "typescript": "5.3.3" + "typedoc": "0.26.5", + "typescript": "5.5.4" } } diff --git a/client/src/common.ts b/client/src/common.ts new file mode 100644 index 000000000..d8b835339 --- /dev/null +++ b/client/src/common.ts @@ -0,0 +1 @@ +export const BASE_PATH = "https://api.mainnet.hiro.so"; diff --git a/client/src/generated/.openapi-generator-ignore b/client/src/generated/.openapi-generator-ignore deleted file mode 100644 index 7484ee590..000000000 --- a/client/src/generated/.openapi-generator-ignore +++ /dev/null @@ -1,23 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -# As an example, the C# client generator defines ApiClient.cs. -# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: -#ApiClient.cs - -# You can match any string of characters against a directory, file or extension with a single asterisk (*): -#foo/*/qux -# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux - -# You can recursively match patterns against a directory, file or extension with a double asterisk (**): -#foo/**/qux -# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux - -# You can also negate patterns with an exclamation (!). -# For example, you can ignore all files in a docs folder with the file extension .md: -#docs/*.md -# Then explicitly reverse the ignore rule for a single file: -#!docs/README.md diff --git a/client/src/generated/.openapi-generator/FILES b/client/src/generated/.openapi-generator/FILES deleted file mode 100644 index 698b84bca..000000000 --- a/client/src/generated/.openapi-generator/FILES +++ /dev/null @@ -1,172 +0,0 @@ -.openapi-generator-ignore -apis/AccountsApi.ts -apis/BlocksApi.ts -apis/FaucetsApi.ts -apis/FeesApi.ts -apis/FungibleTokensApi.ts -apis/InfoApi.ts -apis/MempoolApi.ts -apis/MicroblocksApi.ts -apis/NamesApi.ts -apis/NonFungibleTokensApi.ts -apis/RosettaApi.ts -apis/SearchApi.ts -apis/SmartContractsApi.ts -apis/StackingApi.ts -apis/StackingRewardsApi.ts -apis/TransactionsApi.ts -apis/index.ts -index.ts -models/AccountDataResponse.ts -models/AddressAssetsListResponse.ts -models/AddressBalanceResponse.ts -models/AddressNftListResponse.ts -models/AddressNftListResponseValue.ts -models/AddressNonces.ts -models/AddressStxInboundListResponse.ts -models/AddressTokenOfferingLocked.ts -models/AddressTransactionWithTransfers.ts -models/AddressTransactionWithTransfersFtTransfers.ts -models/AddressTransactionWithTransfersNftTransfers.ts -models/AddressTransactionWithTransfersStxTransfers.ts -models/AddressTransactionWithTransfersValue.ts -models/AddressTransactionsListResponse.ts -models/AddressTransactionsWithTransfersListResponse.ts -models/AddressUnlockSchedule.ts -models/Block.ts -models/BlockListResponse.ts -models/BnsError.ts -models/BnsGetAllNamespacesResponse.ts -models/BnsGetNameInfoResponse.ts -models/BnsGetNamePriceResponse.ts -models/BnsGetNamespacePriceResponse.ts -models/BnsNamesOwnByAddressResponse.ts -models/BurnchainReward.ts -models/BurnchainRewardListResponse.ts -models/BurnchainRewardSlotHolder.ts -models/BurnchainRewardSlotHolderListResponse.ts -models/BurnchainRewardsTotal.ts -models/ChainTip.ts -models/ContractInterfaceResponse.ts -models/ContractListResponse.ts -models/ContractSourceResponse.ts -models/CoreNodeInfoResponse.ts -models/CoreNodePoxResponse.ts -models/FeeRate.ts -models/FeeRateRequest.ts -models/FungibleTokenMetadata.ts -models/FungibleTokensMetadataList.ts -models/GetRawTransactionResult.ts -models/GetStxSupplyLegacyFormatResponse.ts -models/GetStxSupplyResponse.ts -models/InboundStxTransfer.ts -models/InlineObject.ts -models/InlineResponse403.ts -models/MapEntryResponse.ts -models/MempoolFeePriorities.ts -models/MempoolFeePrioritiesAll.ts -models/MempoolTransactionListResponse.ts -models/MempoolTransactionStatsResponse.ts -models/MempoolTransactionStatsResponseTxAges.ts -models/MempoolTransactionStatsResponseTxByteSizes.ts -models/MempoolTransactionStatsResponseTxSimpleFeeAverages.ts -models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.ts -models/MempoolTransactionStatsResponseTxTypeCounts.ts -models/Microblock.ts -models/MicroblockListResponse.ts -models/NetworkBlockTimeResponse.ts -models/NetworkBlockTimesResponse.ts -models/NetworkIdentifier.ts -models/NftEvent.ts -models/NonFungibleTokenHistoryEventList.ts -models/NonFungibleTokenHoldingsList.ts -models/NonFungibleTokenMetadata.ts -models/NonFungibleTokenMintList.ts -models/NonFungibleTokensMetadataList.ts -models/OtherTransactionIdentifier.ts -models/PoolDelegation.ts -models/PoolDelegationsResponse.ts -models/PostCoreNodeTransactionsError.ts -models/ReadOnlyFunctionArgs.ts -models/ReadOnlyFunctionSuccessResponse.ts -models/RosettaAccount.ts -models/RosettaAccountBalanceRequest.ts -models/RosettaAccountBalanceResponse.ts -models/RosettaAccountBalanceResponseCoinIdentifier.ts -models/RosettaAccountBalanceResponseMetadata.ts -models/RosettaAccountIdentifier.ts -models/RosettaAmount.ts -models/RosettaBlock.ts -models/RosettaBlockMetadata.ts -models/RosettaBlockMetadata1.ts -models/RosettaBlockRequest.ts -models/RosettaBlockResponse.ts -models/RosettaBlockTransactionRequest.ts -models/RosettaBlockTransactionResponse.ts -models/RosettaCoin.ts -models/RosettaCoinChange.ts -models/RosettaConstructionCombineRequest.ts -models/RosettaConstructionCombineResponse.ts -models/RosettaConstructionDeriveRequest.ts -models/RosettaConstructionDeriveResponse.ts -models/RosettaConstructionHashRequest.ts -models/RosettaConstructionHashResponse.ts -models/RosettaConstructionMetadataRequest.ts -models/RosettaConstructionMetadataResponse.ts -models/RosettaConstructionMetadataResponseMetadata.ts -models/RosettaConstructionParseRequest.ts -models/RosettaConstructionParseResponse.ts -models/RosettaConstructionPayloadResponse.ts -models/RosettaConstructionPayloadsRequest.ts -models/RosettaConstructionPreprocessRequest.ts -models/RosettaConstructionPreprocessResponse.ts -models/RosettaConstructionSubmitRequest.ts -models/RosettaConstructionSubmitResponse.ts -models/RosettaCurrency.ts -models/RosettaError.ts -models/RosettaErrorDetails.ts -models/RosettaErrorNoDetails.ts -models/RosettaGenesisBlockIdentifier.ts -models/RosettaMaxFeeAmount.ts -models/RosettaMempoolRequest.ts -models/RosettaMempoolResponse.ts -models/RosettaMempoolTransactionRequest.ts -models/RosettaMempoolTransactionResponse.ts -models/RosettaNetworkListResponse.ts -models/RosettaNetworkListResponseSubNetworkIdentifier.ts -models/RosettaNetworkListResponseSubNetworkIdentifierMetadata.ts -models/RosettaNetworkOptionsResponse.ts -models/RosettaNetworkOptionsResponseAllow.ts -models/RosettaNetworkOptionsResponseVersion.ts -models/RosettaNetworkStatusResponse.ts -models/RosettaOldestBlockIdentifier.ts -models/RosettaOperation.ts -models/RosettaOperationIdentifier.ts -models/RosettaOperationStatus.ts -models/RosettaOptions.ts -models/RosettaOptionsRequest.ts -models/RosettaParentBlockIdentifier.ts -models/RosettaPeers.ts -models/RosettaPublicKey.ts -models/RosettaRelatedOperation.ts -models/RosettaSignature.ts -models/RosettaStatusRequest.ts -models/RosettaSubAccount.ts -models/RosettaSyncStatus.ts -models/RosettaTransaction.ts -models/RunFaucetResponse.ts -models/ServerStatusResponse.ts -models/SigningPayload.ts -models/SmartContract.ts -models/StxBalance.ts -models/TargetBlockTime.ts -models/TransactionEventsResponse.ts -models/TransactionFeeEstimateRequest.ts -models/TransactionFeeEstimateResponse.ts -models/TransactionFeeEstimateResponseEstimatedCost.ts -models/TransactionFeeEstimateResponseEstimations.ts -models/TransactionIdentifier.ts -models/TransactionResults.ts -models/UnanchoredTransactionListResponse.ts -models/index.ts -runtime.ts diff --git a/client/src/generated/.openapi-generator/VERSION b/client/src/generated/.openapi-generator/VERSION deleted file mode 100644 index e230c8396..000000000 --- a/client/src/generated/.openapi-generator/VERSION +++ /dev/null @@ -1 +0,0 @@ -5.3.0 \ No newline at end of file diff --git a/client/src/generated/apis/AccountsApi.ts b/client/src/generated/apis/AccountsApi.ts deleted file mode 100644 index e1120dc74..000000000 --- a/client/src/generated/apis/AccountsApi.ts +++ /dev/null @@ -1,773 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - AccountDataResponse, - AccountDataResponseFromJSON, - AccountDataResponseToJSON, - AddressAssetsListResponse, - AddressAssetsListResponseFromJSON, - AddressAssetsListResponseToJSON, - AddressBalanceResponse, - AddressBalanceResponseFromJSON, - AddressBalanceResponseToJSON, - AddressNftListResponse, - AddressNftListResponseFromJSON, - AddressNftListResponseToJSON, - AddressNonces, - AddressNoncesFromJSON, - AddressNoncesToJSON, - AddressStxInboundListResponse, - AddressStxInboundListResponseFromJSON, - AddressStxInboundListResponseToJSON, - AddressTransactionWithTransfers, - AddressTransactionWithTransfersFromJSON, - AddressTransactionWithTransfersToJSON, - AddressTransactionsListResponse, - AddressTransactionsListResponseFromJSON, - AddressTransactionsListResponseToJSON, - AddressTransactionsWithTransfersListResponse, - AddressTransactionsWithTransfersListResponseFromJSON, - AddressTransactionsWithTransfersListResponseToJSON, -} from '../models'; - -export interface GetAccountAssetsRequest { - principal: string; - limit?: number; - offset?: number; - unanchored?: boolean; - untilBlock?: string; -} - -export interface GetAccountBalanceRequest { - principal: string; - unanchored?: boolean; - untilBlock?: string; -} - -export interface GetAccountInboundRequest { - principal: string; - limit?: number; - offset?: number; - height?: number; - unanchored?: boolean; - untilBlock?: string; -} - -export interface GetAccountInfoRequest { - principal: string; - proof?: number; - tip?: string; -} - -export interface GetAccountNftRequest { - principal: string; - limit?: number; - offset?: number; - unanchored?: boolean; - untilBlock?: string; -} - -export interface GetAccountNoncesRequest { - principal: string; - blockHeight?: number; - blockHash?: string; -} - -export interface GetAccountStxBalanceRequest { - principal: string; - unanchored?: boolean; - untilBlock?: string; -} - -export interface GetAccountTransactionsRequest { - principal: string; - limit?: number; - offset?: number; - height?: number; - unanchored?: boolean; - untilBlock?: string; -} - -export interface GetAccountTransactionsWithTransfersRequest { - principal: string; - limit?: number; - offset?: number; - height?: number; - unanchored?: boolean; - untilBlock?: string; -} - -export interface GetSingleTransactionWithTransfersRequest { - principal: string; - txId: string; -} - -/** - * AccountsApi - interface - * - * @export - * @interface AccountsApiInterface - */ -export interface AccountsApiInterface { - /** - * Retrieves a list of all assets events associated with an account or a Contract Identifier. This includes Transfers, Mints. - * @summary Get account assets - * @param {string} principal Stacks address or a Contract identifier - * @param {number} [limit] max number of account assets to fetch - * @param {number} [offset] index of first account assets to fetch - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {string} [untilBlock] returned data representing the state at that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountAssetsRaw(requestParameters: GetAccountAssetsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of all assets events associated with an account or a Contract Identifier. This includes Transfers, Mints. - * Get account assets - */ - getAccountAssets(requestParameters: GetAccountAssetsRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves total account balance information for a given Address or Contract Identifier. This includes the balances of STX Tokens, Fungible Tokens and Non-Fungible Tokens for the account. - * @summary Get account balances - * @param {string} principal Stacks address or a Contract identifier - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {string} [untilBlock] returned data representing the state up until that point in time, rather than the current block. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountBalanceRaw(requestParameters: GetAccountBalanceRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves total account balance information for a given Address or Contract Identifier. This includes the balances of STX Tokens, Fungible Tokens and Non-Fungible Tokens for the account. - * Get account balances - */ - getAccountBalance(requestParameters: GetAccountBalanceRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of STX transfers with memos to the given principal. This includes regular transfers from a stx-transfer transaction type, and transfers from contract-call transactions a the `send-many-memo` bulk sending contract. - * @summary Get inbound STX transfers - * @param {string} principal Stacks address or a Contract identifier - * @param {number} [limit] number of items to return - * @param {number} [offset] number of items to skip - * @param {number} [height] Filter for transfers only at this given block height - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {string} [untilBlock] returned data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountInboundRaw(requestParameters: GetAccountInboundRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of STX transfers with memos to the given principal. This includes regular transfers from a stx-transfer transaction type, and transfers from contract-call transactions a the `send-many-memo` bulk sending contract. - * Get inbound STX transfers - */ - getAccountInbound(requestParameters: GetAccountInboundRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the account data for a given Account or a Contract Identifier Where balance is the hex encoding of a unsigned 128-bit integer (big-endian), nonce is an unsigned 64-bit integer, and the proofs are provided as hex strings. For non-existent accounts, this does not return a 404 error, rather it returns an object with balance and nonce of 0. - * @summary Get account info - * @param {string} principal Stacks address or a Contract identifier - * @param {number} [proof] Returns object without the proof field if set to 0 - * @param {string} [tip] The Stacks chain tip to query from - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountInfoRaw(requestParameters: GetAccountInfoRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the account data for a given Account or a Contract Identifier Where balance is the hex encoding of a unsigned 128-bit integer (big-endian), nonce is an unsigned 64-bit integer, and the proofs are provided as hex strings. For non-existent accounts, this does not return a 404 error, rather it returns an object with balance and nonce of 0. - * Get account info - */ - getAccountInfo(requestParameters: GetAccountInfoRequest, initOverrides?: RequestInit): Promise; - - /** - * **NOTE:** This endpoint is deprecated in favor of [Non-Fungible Token holdings](#operation/get_nft_holdings). Retrieves a list of all nfts owned by an address, contains the clarity value of the identifier of the nft. - * @summary Get nft events - * @param {string} principal Stacks address or a Contract identifier - * @param {number} [limit] number of items to return - * @param {number} [offset] number of items to skip - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {string} [untilBlock] returned data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountNftRaw(requestParameters: GetAccountNftRequest, initOverrides?: RequestInit): Promise>; - - /** - * **NOTE:** This endpoint is deprecated in favor of [Non-Fungible Token holdings](#operation/get_nft_holdings). Retrieves a list of all nfts owned by an address, contains the clarity value of the identifier of the nft. - * Get nft events - */ - getAccountNft(requestParameters: GetAccountNftRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions. - * @summary Get the latest nonce used by an account - * @param {string} principal Stacks address - * @param {number} [blockHeight] Optionally get the nonce at a given block height. - * @param {string} [blockHash] Optionally get the nonce at a given block hash. Note - Use either of the query parameters but not both at a time. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountNoncesRaw(requestParameters: GetAccountNoncesRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions. - * Get the latest nonce used by an account - */ - getAccountNonces(requestParameters: GetAccountNoncesRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves STX token balance for a given Address or Contract Identifier. - * @summary Get account STX balance - * @param {string} principal Stacks address or a Contract identifier. - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks. - * @param {string} [untilBlock] returned data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountStxBalanceRaw(requestParameters: GetAccountStxBalanceRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves STX token balance for a given Address or Contract Identifier. - * Get account STX balance - */ - getAccountStxBalance(requestParameters: GetAccountStxBalanceRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * @summary Get account transactions - * @param {string} principal Stacks address or a Contract identifier - * @param {number} [limit] max number of account transactions to fetch - * @param {number} [offset] index of first account transaction to fetch - * @param {number} [height] Filter for transactions only at this given block height - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {string} [untilBlock] returned data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountTransactionsRaw(requestParameters: GetAccountTransactionsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get account transactions - */ - getAccountTransactions(requestParameters: GetAccountTransactionsRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieve all transactions for an account or contract identifier including STX transfers for each transaction. - * @summary Get account transactions including STX transfers for each transaction. - * @param {string} principal Stacks address or a Contract identifier - * @param {number} [limit] max number of account transactions to fetch - * @param {number} [offset] index of first account transaction to fetch - * @param {number} [height] Filter for transactions only at this given block height - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {string} [untilBlock] returned data representing the state up until that point in time, rather than the current block. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getAccountTransactionsWithTransfersRaw(requestParameters: GetAccountTransactionsWithTransfersRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieve all transactions for an account or contract identifier including STX transfers for each transaction. - * Get account transactions including STX transfers for each transaction. - */ - getAccountTransactionsWithTransfers(requestParameters: GetAccountTransactionsWithTransfersRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves transaction details for a given Transaction Id `tx_id`, for a given account or contract Identifier. - * @summary Get account transaction information for specific transaction - * @param {string} principal Stacks address or a contract identifier - * @param {string} txId Transaction id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AccountsApiInterface - */ - getSingleTransactionWithTransfersRaw(requestParameters: GetSingleTransactionWithTransfersRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves transaction details for a given Transaction Id `tx_id`, for a given account or contract Identifier. - * Get account transaction information for specific transaction - */ - getSingleTransactionWithTransfers(requestParameters: GetSingleTransactionWithTransfersRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class AccountsApi extends runtime.BaseAPI implements AccountsApiInterface { - - /** - * Retrieves a list of all assets events associated with an account or a Contract Identifier. This includes Transfers, Mints. - * Get account assets - */ - async getAccountAssetsRaw(requestParameters: GetAccountAssetsRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountAssets.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.untilBlock !== undefined) { - queryParameters['until_block'] = requestParameters.untilBlock; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/assets`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AddressAssetsListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of all assets events associated with an account or a Contract Identifier. This includes Transfers, Mints. - * Get account assets - */ - async getAccountAssets(requestParameters: GetAccountAssetsRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountAssetsRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves total account balance information for a given Address or Contract Identifier. This includes the balances of STX Tokens, Fungible Tokens and Non-Fungible Tokens for the account. - * Get account balances - */ - async getAccountBalanceRaw(requestParameters: GetAccountBalanceRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountBalance.'); - } - - const queryParameters: any = {}; - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.untilBlock !== undefined) { - queryParameters['until_block'] = requestParameters.untilBlock; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/balances`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AddressBalanceResponseFromJSON(jsonValue)); - } - - /** - * Retrieves total account balance information for a given Address or Contract Identifier. This includes the balances of STX Tokens, Fungible Tokens and Non-Fungible Tokens for the account. - * Get account balances - */ - async getAccountBalance(requestParameters: GetAccountBalanceRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountBalanceRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of STX transfers with memos to the given principal. This includes regular transfers from a stx-transfer transaction type, and transfers from contract-call transactions a the `send-many-memo` bulk sending contract. - * Get inbound STX transfers - */ - async getAccountInboundRaw(requestParameters: GetAccountInboundRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountInbound.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.height !== undefined) { - queryParameters['height'] = requestParameters.height; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.untilBlock !== undefined) { - queryParameters['until_block'] = requestParameters.untilBlock; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/stx_inbound`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AddressStxInboundListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of STX transfers with memos to the given principal. This includes regular transfers from a stx-transfer transaction type, and transfers from contract-call transactions a the `send-many-memo` bulk sending contract. - * Get inbound STX transfers - */ - async getAccountInbound(requestParameters: GetAccountInboundRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountInboundRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the account data for a given Account or a Contract Identifier Where balance is the hex encoding of a unsigned 128-bit integer (big-endian), nonce is an unsigned 64-bit integer, and the proofs are provided as hex strings. For non-existent accounts, this does not return a 404 error, rather it returns an object with balance and nonce of 0. - * Get account info - */ - async getAccountInfoRaw(requestParameters: GetAccountInfoRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountInfo.'); - } - - const queryParameters: any = {}; - - if (requestParameters.proof !== undefined) { - queryParameters['proof'] = requestParameters.proof; - } - - if (requestParameters.tip !== undefined) { - queryParameters['tip'] = requestParameters.tip; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v2/accounts/{principal}`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AccountDataResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the account data for a given Account or a Contract Identifier Where balance is the hex encoding of a unsigned 128-bit integer (big-endian), nonce is an unsigned 64-bit integer, and the proofs are provided as hex strings. For non-existent accounts, this does not return a 404 error, rather it returns an object with balance and nonce of 0. - * Get account info - */ - async getAccountInfo(requestParameters: GetAccountInfoRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountInfoRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of [Non-Fungible Token holdings](#operation/get_nft_holdings). Retrieves a list of all nfts owned by an address, contains the clarity value of the identifier of the nft. - * Get nft events - */ - async getAccountNftRaw(requestParameters: GetAccountNftRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountNft.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.untilBlock !== undefined) { - queryParameters['until_block'] = requestParameters.untilBlock; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/nft_events`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AddressNftListResponseFromJSON(jsonValue)); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of [Non-Fungible Token holdings](#operation/get_nft_holdings). Retrieves a list of all nfts owned by an address, contains the clarity value of the identifier of the nft. - * Get nft events - */ - async getAccountNft(requestParameters: GetAccountNftRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountNftRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions. - * Get the latest nonce used by an account - */ - async getAccountNoncesRaw(requestParameters: GetAccountNoncesRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountNonces.'); - } - - const queryParameters: any = {}; - - if (requestParameters.blockHeight !== undefined) { - queryParameters['block_height'] = requestParameters.blockHeight; - } - - if (requestParameters.blockHash !== undefined) { - queryParameters['block_hash'] = requestParameters.blockHash; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/nonces`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AddressNoncesFromJSON(jsonValue)); - } - - /** - * Retrieves the latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions. - * Get the latest nonce used by an account - */ - async getAccountNonces(requestParameters: GetAccountNoncesRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountNoncesRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves STX token balance for a given Address or Contract Identifier. - * Get account STX balance - */ - async getAccountStxBalanceRaw(requestParameters: GetAccountStxBalanceRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountStxBalance.'); - } - - const queryParameters: any = {}; - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.untilBlock !== undefined) { - queryParameters['until_block'] = requestParameters.untilBlock; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/stx`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves STX token balance for a given Address or Contract Identifier. - * Get account STX balance - */ - async getAccountStxBalance(requestParameters: GetAccountStxBalanceRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountStxBalanceRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get account transactions - */ - async getAccountTransactionsRaw(requestParameters: GetAccountTransactionsRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountTransactions.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.height !== undefined) { - queryParameters['height'] = requestParameters.height; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.untilBlock !== undefined) { - queryParameters['until_block'] = requestParameters.untilBlock; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/transactions`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AddressTransactionsListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get account transactions - */ - async getAccountTransactions(requestParameters: GetAccountTransactionsRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountTransactionsRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieve all transactions for an account or contract identifier including STX transfers for each transaction. - * Get account transactions including STX transfers for each transaction. - */ - async getAccountTransactionsWithTransfersRaw(requestParameters: GetAccountTransactionsWithTransfersRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getAccountTransactionsWithTransfers.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.height !== undefined) { - queryParameters['height'] = requestParameters.height; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.untilBlock !== undefined) { - queryParameters['until_block'] = requestParameters.untilBlock; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/transactions_with_transfers`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AddressTransactionsWithTransfersListResponseFromJSON(jsonValue)); - } - - /** - * Retrieve all transactions for an account or contract identifier including STX transfers for each transaction. - * Get account transactions including STX transfers for each transaction. - */ - async getAccountTransactionsWithTransfers(requestParameters: GetAccountTransactionsWithTransfersRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAccountTransactionsWithTransfersRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves transaction details for a given Transaction Id `tx_id`, for a given account or contract Identifier. - * Get account transaction information for specific transaction - */ - async getSingleTransactionWithTransfersRaw(requestParameters: GetSingleTransactionWithTransfersRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getSingleTransactionWithTransfers.'); - } - - if (requestParameters.txId === null || requestParameters.txId === undefined) { - throw new runtime.RequiredError('txId','Required parameter requestParameters.txId was null or undefined when calling getSingleTransactionWithTransfers.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{principal}/{tx_id}/with_transfers`.replace(`{${"principal"}}`, encodeURIComponent(String(requestParameters.principal))).replace(`{${"tx_id"}}`, encodeURIComponent(String(requestParameters.txId))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AddressTransactionWithTransfersFromJSON(jsonValue)); - } - - /** - * Retrieves transaction details for a given Transaction Id `tx_id`, for a given account or contract Identifier. - * Get account transaction information for specific transaction - */ - async getSingleTransactionWithTransfers(requestParameters: GetSingleTransactionWithTransfersRequest, initOverrides?: RequestInit): Promise { - const response = await this.getSingleTransactionWithTransfersRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/BlocksApi.ts b/client/src/generated/apis/BlocksApi.ts deleted file mode 100644 index d51aa87cc..000000000 --- a/client/src/generated/apis/BlocksApi.ts +++ /dev/null @@ -1,306 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - Block, - BlockFromJSON, - BlockToJSON, - BlockListResponse, - BlockListResponseFromJSON, - BlockListResponseToJSON, -} from '../models'; - -export interface GetBlockByBurnBlockHashRequest { - burnBlockHash: string; -} - -export interface GetBlockByBurnBlockHeightRequest { - burnBlockHeight: number; -} - -export interface GetBlockByHashRequest { - hash: string; -} - -export interface GetBlockByHeightRequest { - height: number; -} - -export interface GetBlockListRequest { - limit?: number; - offset?: number; -} - -/** - * BlocksApi - interface - * - * @export - * @interface BlocksApiInterface - */ -export interface BlocksApiInterface { - /** - * Retrieves block details of a specific block for a given burnchain block hash - * @summary Get block by burnchain block hash - * @param {string} burnBlockHash Hash of the burnchain block - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof BlocksApiInterface - */ - getBlockByBurnBlockHashRaw(requestParameters: GetBlockByBurnBlockHashRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves block details of a specific block for a given burnchain block hash - * Get block by burnchain block hash - */ - getBlockByBurnBlockHash(requestParameters: GetBlockByBurnBlockHashRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves block details of a specific block for a given burn chain height - * @summary Get block by burnchain height - * @param {number} burnBlockHeight Height of the burn chain block - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof BlocksApiInterface - */ - getBlockByBurnBlockHeightRaw(requestParameters: GetBlockByBurnBlockHeightRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves block details of a specific block for a given burn chain height - * Get block by burnchain height - */ - getBlockByBurnBlockHeight(requestParameters: GetBlockByBurnBlockHeightRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block (\'get_block_list\' API) to get your block details. - * @summary Get block by hash - * @param {string} hash Hash of the block - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof BlocksApiInterface - */ - getBlockByHashRaw(requestParameters: GetBlockByHashRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block (\'get_block_list\' API) to get your block details. - * Get block by hash - */ - getBlockByHash(requestParameters: GetBlockByHashRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves block details of a specific block at a given block height - * @summary Get block by height - * @param {number} height Height of the block - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof BlocksApiInterface - */ - getBlockByHeightRaw(requestParameters: GetBlockByHeightRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves block details of a specific block at a given block height - * Get block by height - */ - getBlockByHeight(requestParameters: GetBlockByHeightRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of recently mined blocks If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * @summary Get recent blocks - * @param {number} [limit] max number of blocks to fetch - * @param {number} [offset] index of first block to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof BlocksApiInterface - */ - getBlockListRaw(requestParameters: GetBlockListRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of recently mined blocks If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get recent blocks - */ - getBlockList(requestParameters: GetBlockListRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class BlocksApi extends runtime.BaseAPI implements BlocksApiInterface { - - /** - * Retrieves block details of a specific block for a given burnchain block hash - * Get block by burnchain block hash - */ - async getBlockByBurnBlockHashRaw(requestParameters: GetBlockByBurnBlockHashRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.burnBlockHash === null || requestParameters.burnBlockHash === undefined) { - throw new runtime.RequiredError('burnBlockHash','Required parameter requestParameters.burnBlockHash was null or undefined when calling getBlockByBurnBlockHash.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/block/by_burn_block_hash/{burn_block_hash}`.replace(`{${"burn_block_hash"}}`, encodeURIComponent(String(requestParameters.burnBlockHash))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BlockFromJSON(jsonValue)); - } - - /** - * Retrieves block details of a specific block for a given burnchain block hash - * Get block by burnchain block hash - */ - async getBlockByBurnBlockHash(requestParameters: GetBlockByBurnBlockHashRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBlockByBurnBlockHashRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves block details of a specific block for a given burn chain height - * Get block by burnchain height - */ - async getBlockByBurnBlockHeightRaw(requestParameters: GetBlockByBurnBlockHeightRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.burnBlockHeight === null || requestParameters.burnBlockHeight === undefined) { - throw new runtime.RequiredError('burnBlockHeight','Required parameter requestParameters.burnBlockHeight was null or undefined when calling getBlockByBurnBlockHeight.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/block/by_burn_block_height/{burn_block_height}`.replace(`{${"burn_block_height"}}`, encodeURIComponent(String(requestParameters.burnBlockHeight))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BlockFromJSON(jsonValue)); - } - - /** - * Retrieves block details of a specific block for a given burn chain height - * Get block by burnchain height - */ - async getBlockByBurnBlockHeight(requestParameters: GetBlockByBurnBlockHeightRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBlockByBurnBlockHeightRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block (\'get_block_list\' API) to get your block details. - * Get block by hash - */ - async getBlockByHashRaw(requestParameters: GetBlockByHashRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.hash === null || requestParameters.hash === undefined) { - throw new runtime.RequiredError('hash','Required parameter requestParameters.hash was null or undefined when calling getBlockByHash.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/block/{hash}`.replace(`{${"hash"}}`, encodeURIComponent(String(requestParameters.hash))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BlockFromJSON(jsonValue)); - } - - /** - * Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block (\'get_block_list\' API) to get your block details. - * Get block by hash - */ - async getBlockByHash(requestParameters: GetBlockByHashRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBlockByHashRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves block details of a specific block at a given block height - * Get block by height - */ - async getBlockByHeightRaw(requestParameters: GetBlockByHeightRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.height === null || requestParameters.height === undefined) { - throw new runtime.RequiredError('height','Required parameter requestParameters.height was null or undefined when calling getBlockByHeight.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/block/by_height/{height}`.replace(`{${"height"}}`, encodeURIComponent(String(requestParameters.height))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BlockFromJSON(jsonValue)); - } - - /** - * Retrieves block details of a specific block at a given block height - * Get block by height - */ - async getBlockByHeight(requestParameters: GetBlockByHeightRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBlockByHeightRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of recently mined blocks If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get recent blocks - */ - async getBlockListRaw(requestParameters: GetBlockListRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/block`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BlockListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of recently mined blocks If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get recent blocks - */ - async getBlockList(requestParameters: GetBlockListRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBlockListRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/FaucetsApi.ts b/client/src/generated/apis/FaucetsApi.ts deleted file mode 100644 index 2f7d512af..000000000 --- a/client/src/generated/apis/FaucetsApi.ts +++ /dev/null @@ -1,166 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - InlineObject, - InlineObjectFromJSON, - InlineObjectToJSON, - InlineResponse403, - InlineResponse403FromJSON, - InlineResponse403ToJSON, - RunFaucetResponse, - RunFaucetResponseFromJSON, - RunFaucetResponseToJSON, -} from '../models'; - -export interface RunFaucetBtcRequest { - address: string; - inlineObject?: InlineObject; -} - -export interface RunFaucetStxRequest { - address: string; - stacking?: boolean; -} - -/** - * FaucetsApi - interface - * - * @export - * @interface FaucetsApiInterface - */ -export interface FaucetsApiInterface { - /** - * Add 1 BTC token to the specified testnet BTC address. The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block explorer. The tokens are delivered once the transaction has been included in a block. **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - * @summary Add testnet BTC tokens to address - * @param {string} address A valid testnet BTC address - * @param {InlineObject} [inlineObject] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FaucetsApiInterface - */ - runFaucetBtcRaw(requestParameters: RunFaucetBtcRequest, initOverrides?: RequestInit): Promise>; - - /** - * Add 1 BTC token to the specified testnet BTC address. The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block explorer. The tokens are delivered once the transaction has been included in a block. **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - * Add testnet BTC tokens to address - */ - runFaucetBtc(requestParameters: RunFaucetBtcRequest, initOverrides?: RequestInit): Promise; - - /** - * Add 500 STX tokens to the specified testnet address. Testnet STX addresses begin with `ST`. If the `stacking` parameter is set to `true`, the faucet will add the required number of tokens for individual stacking to the specified testnet address. The endpoint returns the transaction ID, which you can use to view the transaction in the [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has been included in an anchor block. A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat). **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - * @summary Get STX testnet tokens - * @param {string} address A valid testnet STX address - * @param {boolean} [stacking] Request the amount of STX tokens needed for individual address stacking - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FaucetsApiInterface - */ - runFaucetStxRaw(requestParameters: RunFaucetStxRequest, initOverrides?: RequestInit): Promise>; - - /** - * Add 500 STX tokens to the specified testnet address. Testnet STX addresses begin with `ST`. If the `stacking` parameter is set to `true`, the faucet will add the required number of tokens for individual stacking to the specified testnet address. The endpoint returns the transaction ID, which you can use to view the transaction in the [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has been included in an anchor block. A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat). **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - * Get STX testnet tokens - */ - runFaucetStx(requestParameters: RunFaucetStxRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class FaucetsApi extends runtime.BaseAPI implements FaucetsApiInterface { - - /** - * Add 1 BTC token to the specified testnet BTC address. The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block explorer. The tokens are delivered once the transaction has been included in a block. **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - * Add testnet BTC tokens to address - */ - async runFaucetBtcRaw(requestParameters: RunFaucetBtcRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.address === null || requestParameters.address === undefined) { - throw new runtime.RequiredError('address','Required parameter requestParameters.address was null or undefined when calling runFaucetBtc.'); - } - - const queryParameters: any = {}; - - if (requestParameters.address !== undefined) { - queryParameters['address'] = requestParameters.address; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/extended/v1/faucets/btc`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: InlineObjectToJSON(requestParameters.inlineObject), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RunFaucetResponseFromJSON(jsonValue)); - } - - /** - * Add 1 BTC token to the specified testnet BTC address. The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block explorer. The tokens are delivered once the transaction has been included in a block. **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - * Add testnet BTC tokens to address - */ - async runFaucetBtc(requestParameters: RunFaucetBtcRequest, initOverrides?: RequestInit): Promise { - const response = await this.runFaucetBtcRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Add 500 STX tokens to the specified testnet address. Testnet STX addresses begin with `ST`. If the `stacking` parameter is set to `true`, the faucet will add the required number of tokens for individual stacking to the specified testnet address. The endpoint returns the transaction ID, which you can use to view the transaction in the [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has been included in an anchor block. A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat). **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - * Get STX testnet tokens - */ - async runFaucetStxRaw(requestParameters: RunFaucetStxRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.address === null || requestParameters.address === undefined) { - throw new runtime.RequiredError('address','Required parameter requestParameters.address was null or undefined when calling runFaucetStx.'); - } - - const queryParameters: any = {}; - - if (requestParameters.address !== undefined) { - queryParameters['address'] = requestParameters.address; - } - - if (requestParameters.stacking !== undefined) { - queryParameters['stacking'] = requestParameters.stacking; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/faucets/stx`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RunFaucetResponseFromJSON(jsonValue)); - } - - /** - * Add 500 STX tokens to the specified testnet address. Testnet STX addresses begin with `ST`. If the `stacking` parameter is set to `true`, the faucet will add the required number of tokens for individual stacking to the specified testnet address. The endpoint returns the transaction ID, which you can use to view the transaction in the [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has been included in an anchor block. A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat). **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - * Get STX testnet tokens - */ - async runFaucetStx(requestParameters: RunFaucetStxRequest, initOverrides?: RequestInit): Promise { - const response = await this.runFaucetStxRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/FeesApi.ts b/client/src/generated/apis/FeesApi.ts deleted file mode 100644 index 510755aee..000000000 --- a/client/src/generated/apis/FeesApi.ts +++ /dev/null @@ -1,195 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - FeeRate, - FeeRateFromJSON, - FeeRateToJSON, - FeeRateRequest, - FeeRateRequestFromJSON, - FeeRateRequestToJSON, - TransactionFeeEstimateRequest, - TransactionFeeEstimateRequestFromJSON, - TransactionFeeEstimateRequestToJSON, - TransactionFeeEstimateResponse, - TransactionFeeEstimateResponseFromJSON, - TransactionFeeEstimateResponseToJSON, -} from '../models'; - -export interface FetchFeeRateRequest { - feeRateRequest: FeeRateRequest; -} - -export interface PostFeeTransactionRequest { - transactionFeeEstimateRequest?: TransactionFeeEstimateRequest; -} - -/** - * FeesApi - interface - * - * @export - * @interface FeesApiInterface - */ -export interface FeesApiInterface { - /** - * **NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](#operation/post_fee_transaction). Retrieves estimated fee rate. - * @summary Fetch fee rate - * @param {FeeRateRequest} feeRateRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FeesApiInterface - */ - fetchFeeRateRaw(requestParameters: FetchFeeRateRequest, initOverrides?: RequestInit): Promise>; - - /** - * **NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](#operation/post_fee_transaction). Retrieves estimated fee rate. - * Fetch fee rate - */ - fetchFeeRate(requestParameters: FetchFeeRateRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves an estimated fee rate for STX transfer transactions. This a a fee rate / byte, and is returned as a JSON integer - * @summary Get estimated fee - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FeesApiInterface - */ - getFeeTransferRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves an estimated fee rate for STX transfer transactions. This a a fee rate / byte, and is returned as a JSON integer - * Get estimated fee - */ - getFeeTransfer(initOverrides?: RequestInit): Promise; - - /** - * Get an estimated fee for the supplied transaction. This estimates the execution cost of the transaction, the current fee rate of the network, and returns estimates for fee amounts. * `transaction_payload` is a hex-encoded serialization of the TransactionPayload for the transaction. * `estimated_len` is an optional argument that provides the endpoint with an estimation of the final length (in bytes) of the transaction, including any post-conditions and signatures If the node cannot provide an estimate for the transaction (e.g., if the node has never seen a contract-call for the given contract and function) or if estimation is not configured on this node, a 400 response is returned. The 400 response will be a JSON error containing a `reason` field which can be one of the following: * `DatabaseError` - this Stacks node has had an internal database error while trying to estimate the costs of the supplied transaction. * `NoEstimateAvailable` - this Stacks node has not seen this kind of contract-call before, and it cannot provide an estimate yet. * `CostEstimationDisabled` - this Stacks node does not perform fee or cost estimation, and it cannot respond on this endpoint. The 200 response contains the following data: * `estimated_cost` - the estimated multi-dimensional cost of executing the Clarity VM on the provided transaction. * `estimated_cost_scalar` - a unitless integer that the Stacks node uses to compare how much of the block limit is consumed by different transactions. This value incorporates the estimated length of the transaction and the estimated execution cost of the transaction. The range of this integer may vary between different Stacks nodes. In order to compute an estimate of total fee amount for the transaction, this value is multiplied by the same Stacks node\'s estimated fee rate. * `cost_scalar_change_by_byte` - a float value that indicates how much the `estimated_cost_scalar` value would increase for every additional byte in the final transaction. * `estimations` - an array of estimated fee rates and total fees to pay in microSTX for the transaction. This array provides a range of estimates (default: 3) that may be used. Each element of the array contains the following fields: * `fee_rate` - the estimated value for the current fee rates in the network * `fee` - the estimated value for the total fee in microSTX that the given transaction should pay. These values are the result of computing: `fee_rate` x `estimated_cost_scalar`. If the estimated fees are less than the minimum relay fee `(1 ustx x estimated_len)`, then that minimum relay fee will be returned here instead. Note: If the final transaction\'s byte size is larger than supplied to `estimated_len`, then applications should increase this fee amount by: `fee_rate` x `cost_scalar_change_by_byte` x (`final_size` - `estimated_size`) - * @summary Get approximate fees for a given transaction - * @param {TransactionFeeEstimateRequest} [transactionFeeEstimateRequest] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FeesApiInterface - */ - postFeeTransactionRaw(requestParameters: PostFeeTransactionRequest, initOverrides?: RequestInit): Promise>; - - /** - * Get an estimated fee for the supplied transaction. This estimates the execution cost of the transaction, the current fee rate of the network, and returns estimates for fee amounts. * `transaction_payload` is a hex-encoded serialization of the TransactionPayload for the transaction. * `estimated_len` is an optional argument that provides the endpoint with an estimation of the final length (in bytes) of the transaction, including any post-conditions and signatures If the node cannot provide an estimate for the transaction (e.g., if the node has never seen a contract-call for the given contract and function) or if estimation is not configured on this node, a 400 response is returned. The 400 response will be a JSON error containing a `reason` field which can be one of the following: * `DatabaseError` - this Stacks node has had an internal database error while trying to estimate the costs of the supplied transaction. * `NoEstimateAvailable` - this Stacks node has not seen this kind of contract-call before, and it cannot provide an estimate yet. * `CostEstimationDisabled` - this Stacks node does not perform fee or cost estimation, and it cannot respond on this endpoint. The 200 response contains the following data: * `estimated_cost` - the estimated multi-dimensional cost of executing the Clarity VM on the provided transaction. * `estimated_cost_scalar` - a unitless integer that the Stacks node uses to compare how much of the block limit is consumed by different transactions. This value incorporates the estimated length of the transaction and the estimated execution cost of the transaction. The range of this integer may vary between different Stacks nodes. In order to compute an estimate of total fee amount for the transaction, this value is multiplied by the same Stacks node\'s estimated fee rate. * `cost_scalar_change_by_byte` - a float value that indicates how much the `estimated_cost_scalar` value would increase for every additional byte in the final transaction. * `estimations` - an array of estimated fee rates and total fees to pay in microSTX for the transaction. This array provides a range of estimates (default: 3) that may be used. Each element of the array contains the following fields: * `fee_rate` - the estimated value for the current fee rates in the network * `fee` - the estimated value for the total fee in microSTX that the given transaction should pay. These values are the result of computing: `fee_rate` x `estimated_cost_scalar`. If the estimated fees are less than the minimum relay fee `(1 ustx x estimated_len)`, then that minimum relay fee will be returned here instead. Note: If the final transaction\'s byte size is larger than supplied to `estimated_len`, then applications should increase this fee amount by: `fee_rate` x `cost_scalar_change_by_byte` x (`final_size` - `estimated_size`) - * Get approximate fees for a given transaction - */ - postFeeTransaction(requestParameters: PostFeeTransactionRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class FeesApi extends runtime.BaseAPI implements FeesApiInterface { - - /** - * **NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](#operation/post_fee_transaction). Retrieves estimated fee rate. - * Fetch fee rate - */ - async fetchFeeRateRaw(requestParameters: FetchFeeRateRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.feeRateRequest === null || requestParameters.feeRateRequest === undefined) { - throw new runtime.RequiredError('feeRateRequest','Required parameter requestParameters.feeRateRequest was null or undefined when calling fetchFeeRate.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/extended/v1/fee_rate`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: FeeRateRequestToJSON(requestParameters.feeRateRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => FeeRateFromJSON(jsonValue)); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](#operation/post_fee_transaction). Retrieves estimated fee rate. - * Fetch fee rate - */ - async fetchFeeRate(requestParameters: FetchFeeRateRequest, initOverrides?: RequestInit): Promise { - const response = await this.fetchFeeRateRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves an estimated fee rate for STX transfer transactions. This a a fee rate / byte, and is returned as a JSON integer - * Get estimated fee - */ - async getFeeTransferRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v2/fees/transfer`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves an estimated fee rate for STX transfer transactions. This a a fee rate / byte, and is returned as a JSON integer - * Get estimated fee - */ - async getFeeTransfer(initOverrides?: RequestInit): Promise { - const response = await this.getFeeTransferRaw(initOverrides); - return await response.value(); - } - - /** - * Get an estimated fee for the supplied transaction. This estimates the execution cost of the transaction, the current fee rate of the network, and returns estimates for fee amounts. * `transaction_payload` is a hex-encoded serialization of the TransactionPayload for the transaction. * `estimated_len` is an optional argument that provides the endpoint with an estimation of the final length (in bytes) of the transaction, including any post-conditions and signatures If the node cannot provide an estimate for the transaction (e.g., if the node has never seen a contract-call for the given contract and function) or if estimation is not configured on this node, a 400 response is returned. The 400 response will be a JSON error containing a `reason` field which can be one of the following: * `DatabaseError` - this Stacks node has had an internal database error while trying to estimate the costs of the supplied transaction. * `NoEstimateAvailable` - this Stacks node has not seen this kind of contract-call before, and it cannot provide an estimate yet. * `CostEstimationDisabled` - this Stacks node does not perform fee or cost estimation, and it cannot respond on this endpoint. The 200 response contains the following data: * `estimated_cost` - the estimated multi-dimensional cost of executing the Clarity VM on the provided transaction. * `estimated_cost_scalar` - a unitless integer that the Stacks node uses to compare how much of the block limit is consumed by different transactions. This value incorporates the estimated length of the transaction and the estimated execution cost of the transaction. The range of this integer may vary between different Stacks nodes. In order to compute an estimate of total fee amount for the transaction, this value is multiplied by the same Stacks node\'s estimated fee rate. * `cost_scalar_change_by_byte` - a float value that indicates how much the `estimated_cost_scalar` value would increase for every additional byte in the final transaction. * `estimations` - an array of estimated fee rates and total fees to pay in microSTX for the transaction. This array provides a range of estimates (default: 3) that may be used. Each element of the array contains the following fields: * `fee_rate` - the estimated value for the current fee rates in the network * `fee` - the estimated value for the total fee in microSTX that the given transaction should pay. These values are the result of computing: `fee_rate` x `estimated_cost_scalar`. If the estimated fees are less than the minimum relay fee `(1 ustx x estimated_len)`, then that minimum relay fee will be returned here instead. Note: If the final transaction\'s byte size is larger than supplied to `estimated_len`, then applications should increase this fee amount by: `fee_rate` x `cost_scalar_change_by_byte` x (`final_size` - `estimated_size`) - * Get approximate fees for a given transaction - */ - async postFeeTransactionRaw(requestParameters: PostFeeTransactionRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/v2/fees/transaction`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: TransactionFeeEstimateRequestToJSON(requestParameters.transactionFeeEstimateRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => TransactionFeeEstimateResponseFromJSON(jsonValue)); - } - - /** - * Get an estimated fee for the supplied transaction. This estimates the execution cost of the transaction, the current fee rate of the network, and returns estimates for fee amounts. * `transaction_payload` is a hex-encoded serialization of the TransactionPayload for the transaction. * `estimated_len` is an optional argument that provides the endpoint with an estimation of the final length (in bytes) of the transaction, including any post-conditions and signatures If the node cannot provide an estimate for the transaction (e.g., if the node has never seen a contract-call for the given contract and function) or if estimation is not configured on this node, a 400 response is returned. The 400 response will be a JSON error containing a `reason` field which can be one of the following: * `DatabaseError` - this Stacks node has had an internal database error while trying to estimate the costs of the supplied transaction. * `NoEstimateAvailable` - this Stacks node has not seen this kind of contract-call before, and it cannot provide an estimate yet. * `CostEstimationDisabled` - this Stacks node does not perform fee or cost estimation, and it cannot respond on this endpoint. The 200 response contains the following data: * `estimated_cost` - the estimated multi-dimensional cost of executing the Clarity VM on the provided transaction. * `estimated_cost_scalar` - a unitless integer that the Stacks node uses to compare how much of the block limit is consumed by different transactions. This value incorporates the estimated length of the transaction and the estimated execution cost of the transaction. The range of this integer may vary between different Stacks nodes. In order to compute an estimate of total fee amount for the transaction, this value is multiplied by the same Stacks node\'s estimated fee rate. * `cost_scalar_change_by_byte` - a float value that indicates how much the `estimated_cost_scalar` value would increase for every additional byte in the final transaction. * `estimations` - an array of estimated fee rates and total fees to pay in microSTX for the transaction. This array provides a range of estimates (default: 3) that may be used. Each element of the array contains the following fields: * `fee_rate` - the estimated value for the current fee rates in the network * `fee` - the estimated value for the total fee in microSTX that the given transaction should pay. These values are the result of computing: `fee_rate` x `estimated_cost_scalar`. If the estimated fees are less than the minimum relay fee `(1 ustx x estimated_len)`, then that minimum relay fee will be returned here instead. Note: If the final transaction\'s byte size is larger than supplied to `estimated_len`, then applications should increase this fee amount by: `fee_rate` x `cost_scalar_change_by_byte` x (`final_size` - `estimated_size`) - * Get approximate fees for a given transaction - */ - async postFeeTransaction(requestParameters: PostFeeTransactionRequest, initOverrides?: RequestInit): Promise { - const response = await this.postFeeTransactionRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/FungibleTokensApi.ts b/client/src/generated/apis/FungibleTokensApi.ts deleted file mode 100644 index b55945fee..000000000 --- a/client/src/generated/apis/FungibleTokensApi.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - FungibleTokenMetadata, - FungibleTokenMetadataFromJSON, - FungibleTokenMetadataToJSON, - FungibleTokensMetadataList, - FungibleTokensMetadataListFromJSON, - FungibleTokensMetadataListToJSON, -} from '../models'; - -export interface GetContractFtMetadataRequest { - contractId: string; -} - -export interface GetFtMetadataListRequest { - limit?: number; - offset?: number; -} - -/** - * FungibleTokensApi - interface - * - * @export - * @interface FungibleTokensApiInterface - */ -export interface FungibleTokensApiInterface { - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves the metadata for fungible tokens for a given contract id - * @summary Fungible tokens metadata for contract id - * @param {string} contractId token\'s contract id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FungibleTokensApiInterface - */ - getContractFtMetadataRaw(requestParameters: GetContractFtMetadataRequest, initOverrides?: RequestInit): Promise>; - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves the metadata for fungible tokens for a given contract id - * Fungible tokens metadata for contract id - */ - getContractFtMetadata(requestParameters: GetContractFtMetadataRequest, initOverrides?: RequestInit): Promise; - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves list of fungible tokens with their metadata. More information on Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#fungible-tokens). - * @summary Fungible tokens metadata list - * @param {number} [limit] max number of tokens to fetch. - * @param {number} [offset] index of first tokens to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FungibleTokensApiInterface - */ - getFtMetadataListRaw(requestParameters: GetFtMetadataListRequest, initOverrides?: RequestInit): Promise>; - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves list of fungible tokens with their metadata. More information on Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#fungible-tokens). - * Fungible tokens metadata list - */ - getFtMetadataList(requestParameters: GetFtMetadataListRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class FungibleTokensApi extends runtime.BaseAPI implements FungibleTokensApiInterface { - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves the metadata for fungible tokens for a given contract id - * Fungible tokens metadata for contract id - */ - async getContractFtMetadataRaw(requestParameters: GetContractFtMetadataRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.contractId === null || requestParameters.contractId === undefined) { - throw new runtime.RequiredError('contractId','Required parameter requestParameters.contractId was null or undefined when calling getContractFtMetadata.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tokens/{contractId}/ft/metadata`.replace(`{${"contractId"}}`, encodeURIComponent(String(requestParameters.contractId))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => FungibleTokenMetadataFromJSON(jsonValue)); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves the metadata for fungible tokens for a given contract id - * Fungible tokens metadata for contract id - */ - async getContractFtMetadata(requestParameters: GetContractFtMetadataRequest, initOverrides?: RequestInit): Promise { - const response = await this.getContractFtMetadataRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves list of fungible tokens with their metadata. More information on Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#fungible-tokens). - * Fungible tokens metadata list - */ - async getFtMetadataListRaw(requestParameters: GetFtMetadataListRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tokens/ft/metadata`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => FungibleTokensMetadataListFromJSON(jsonValue)); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves list of fungible tokens with their metadata. More information on Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#fungible-tokens). - * Fungible tokens metadata list - */ - async getFtMetadataList(requestParameters: GetFtMetadataListRequest, initOverrides?: RequestInit): Promise { - const response = await this.getFtMetadataListRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/InfoApi.ts b/client/src/generated/apis/InfoApi.ts deleted file mode 100644 index b93cdce1f..000000000 --- a/client/src/generated/apis/InfoApi.ts +++ /dev/null @@ -1,478 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - CoreNodeInfoResponse, - CoreNodeInfoResponseFromJSON, - CoreNodeInfoResponseToJSON, - CoreNodePoxResponse, - CoreNodePoxResponseFromJSON, - CoreNodePoxResponseToJSON, - GetStxSupplyLegacyFormatResponse, - GetStxSupplyLegacyFormatResponseFromJSON, - GetStxSupplyLegacyFormatResponseToJSON, - GetStxSupplyResponse, - GetStxSupplyResponseFromJSON, - GetStxSupplyResponseToJSON, - NetworkBlockTimeResponse, - NetworkBlockTimeResponseFromJSON, - NetworkBlockTimeResponseToJSON, - NetworkBlockTimesResponse, - NetworkBlockTimesResponseFromJSON, - NetworkBlockTimesResponseToJSON, - ServerStatusResponse, - ServerStatusResponseFromJSON, - ServerStatusResponseToJSON, -} from '../models'; - -export interface GetNetworkBlockTimeByNetworkRequest { - network: GetNetworkBlockTimeByNetworkNetworkEnum; -} - -export interface GetStxSupplyRequest { - height?: number; -} - -export interface GetTotalStxSupplyLegacyFormatRequest { - height?: number; -} - -/** - * InfoApi - interface - * - * @export - * @interface InfoApiInterface - */ -export interface InfoApiInterface { - /** - * Retrieves information about the Core API including the server version - * @summary Get Core API info - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getCoreApiInfoRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves information about the Core API including the server version - * Get Core API info - */ - getCoreApiInfo(initOverrides?: RequestInit): Promise; - - /** - * Retrieves the target block time for a given network. The network can be mainnet or testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. - * @summary Get a given network\'s target block time - * @param {'testnet' | 'mainnet'} network the target block time for a given network (testnet, mainnet). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getNetworkBlockTimeByNetworkRaw(requestParameters: GetNetworkBlockTimeByNetworkRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the target block time for a given network. The network can be mainnet or testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. - * Get a given network\'s target block time - */ - getNetworkBlockTimeByNetwork(requestParameters: GetNetworkBlockTimeByNetworkRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the target block times for mainnet and testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. - * @summary Get the network target block time - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getNetworkBlockTimesRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the target block times for mainnet and testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. - * Get the network target block time - */ - getNetworkBlockTimes(initOverrides?: RequestInit): Promise; - - /** - * Retrieves Proof-of-Transfer (PoX) information. Can be used for Stacking. - * @summary Get Proof-of-Transfer details - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getPoxInfoRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves Proof-of-Transfer (PoX) information. Can be used for Stacking. - * Get Proof-of-Transfer details - */ - getPoxInfo(initOverrides?: RequestInit): Promise; - - /** - * Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information. - * @summary API status - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getStatusRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information. - * API status - */ - getStatus(initOverrides?: RequestInit): Promise; - - /** - * Retrieves the total and unlocked STX supply. More information on Stacking can be found [here] (https://docs.stacks.co/understand-stacks/stacking). **Note:** This uses the estimated future total supply for the year 2050. - * @summary Get total and unlocked STX supply - * @param {number} [height] Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. Note that the `block height` is referred to the stacks blockchain. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getStxSupplyRaw(requestParameters: GetStxSupplyRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the total and unlocked STX supply. More information on Stacking can be found [here] (https://docs.stacks.co/understand-stacks/stacking). **Note:** This uses the estimated future total supply for the year 2050. - * Get total and unlocked STX supply - */ - getStxSupply(requestParameters: GetStxSupplyRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the STX tokens currently in circulation that have been unlocked as plain text. - * @summary Get circulating STX supply in plain text format - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getStxSupplyCirculatingPlainRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the STX tokens currently in circulation that have been unlocked as plain text. - * Get circulating STX supply in plain text format - */ - getStxSupplyCirculatingPlain(initOverrides?: RequestInit): Promise; - - /** - * Retrieves the total supply for STX tokens as plain text. **Note:** this uses the estimated future total supply for the year 2050. - * @summary Get total STX supply in plain text format - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getStxSupplyTotalSupplyPlainRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the total supply for STX tokens as plain text. **Note:** this uses the estimated future total supply for the year 2050. - * Get total STX supply in plain text format - */ - getStxSupplyTotalSupplyPlain(initOverrides?: RequestInit): Promise; - - /** - * Retrieves total supply of STX tokens including those currently in circulation that have been unlocked. **Note:** this uses the estimated future total supply for the year 2050. - * @summary Get total and unlocked STX supply (results formatted the same as the legacy 1.0 API) - * @param {number} [height] Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof InfoApiInterface - */ - getTotalStxSupplyLegacyFormatRaw(requestParameters: GetTotalStxSupplyLegacyFormatRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves total supply of STX tokens including those currently in circulation that have been unlocked. **Note:** this uses the estimated future total supply for the year 2050. - * Get total and unlocked STX supply (results formatted the same as the legacy 1.0 API) - */ - getTotalStxSupplyLegacyFormat(requestParameters: GetTotalStxSupplyLegacyFormatRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class InfoApi extends runtime.BaseAPI implements InfoApiInterface { - - /** - * Retrieves information about the Core API including the server version - * Get Core API info - */ - async getCoreApiInfoRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v2/info`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => CoreNodeInfoResponseFromJSON(jsonValue)); - } - - /** - * Retrieves information about the Core API including the server version - * Get Core API info - */ - async getCoreApiInfo(initOverrides?: RequestInit): Promise { - const response = await this.getCoreApiInfoRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves the target block time for a given network. The network can be mainnet or testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. - * Get a given network\'s target block time - */ - async getNetworkBlockTimeByNetworkRaw(requestParameters: GetNetworkBlockTimeByNetworkRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.network === null || requestParameters.network === undefined) { - throw new runtime.RequiredError('network','Required parameter requestParameters.network was null or undefined when calling getNetworkBlockTimeByNetwork.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/info/network_block_time/{network}`.replace(`{${"network"}}`, encodeURIComponent(String(requestParameters.network))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => NetworkBlockTimeResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the target block time for a given network. The network can be mainnet or testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. - * Get a given network\'s target block time - */ - async getNetworkBlockTimeByNetwork(requestParameters: GetNetworkBlockTimeByNetworkRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNetworkBlockTimeByNetworkRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the target block times for mainnet and testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. - * Get the network target block time - */ - async getNetworkBlockTimesRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/info/network_block_times`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => NetworkBlockTimesResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the target block times for mainnet and testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. - * Get the network target block time - */ - async getNetworkBlockTimes(initOverrides?: RequestInit): Promise { - const response = await this.getNetworkBlockTimesRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves Proof-of-Transfer (PoX) information. Can be used for Stacking. - * Get Proof-of-Transfer details - */ - async getPoxInfoRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v2/pox`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => CoreNodePoxResponseFromJSON(jsonValue)); - } - - /** - * Retrieves Proof-of-Transfer (PoX) information. Can be used for Stacking. - * Get Proof-of-Transfer details - */ - async getPoxInfo(initOverrides?: RequestInit): Promise { - const response = await this.getPoxInfoRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information. - * API status - */ - async getStatusRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/status`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => ServerStatusResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information. - * API status - */ - async getStatus(initOverrides?: RequestInit): Promise { - const response = await this.getStatusRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves the total and unlocked STX supply. More information on Stacking can be found [here] (https://docs.stacks.co/understand-stacks/stacking). **Note:** This uses the estimated future total supply for the year 2050. - * Get total and unlocked STX supply - */ - async getStxSupplyRaw(requestParameters: GetStxSupplyRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.height !== undefined) { - queryParameters['height'] = requestParameters.height; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/stx_supply`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => GetStxSupplyResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the total and unlocked STX supply. More information on Stacking can be found [here] (https://docs.stacks.co/understand-stacks/stacking). **Note:** This uses the estimated future total supply for the year 2050. - * Get total and unlocked STX supply - */ - async getStxSupply(requestParameters: GetStxSupplyRequest, initOverrides?: RequestInit): Promise { - const response = await this.getStxSupplyRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the STX tokens currently in circulation that have been unlocked as plain text. - * Get circulating STX supply in plain text format - */ - async getStxSupplyCirculatingPlainRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/stx_supply/circulating/plain`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.TextApiResponse(response) as any; - } - - /** - * Retrieves the STX tokens currently in circulation that have been unlocked as plain text. - * Get circulating STX supply in plain text format - */ - async getStxSupplyCirculatingPlain(initOverrides?: RequestInit): Promise { - const response = await this.getStxSupplyCirculatingPlainRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves the total supply for STX tokens as plain text. **Note:** this uses the estimated future total supply for the year 2050. - * Get total STX supply in plain text format - */ - async getStxSupplyTotalSupplyPlainRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/stx_supply/total/plain`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.TextApiResponse(response) as any; - } - - /** - * Retrieves the total supply for STX tokens as plain text. **Note:** this uses the estimated future total supply for the year 2050. - * Get total STX supply in plain text format - */ - async getStxSupplyTotalSupplyPlain(initOverrides?: RequestInit): Promise { - const response = await this.getStxSupplyTotalSupplyPlainRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves total supply of STX tokens including those currently in circulation that have been unlocked. **Note:** this uses the estimated future total supply for the year 2050. - * Get total and unlocked STX supply (results formatted the same as the legacy 1.0 API) - */ - async getTotalStxSupplyLegacyFormatRaw(requestParameters: GetTotalStxSupplyLegacyFormatRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.height !== undefined) { - queryParameters['height'] = requestParameters.height; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/stx_supply/legacy_format`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => GetStxSupplyLegacyFormatResponseFromJSON(jsonValue)); - } - - /** - * Retrieves total supply of STX tokens including those currently in circulation that have been unlocked. **Note:** this uses the estimated future total supply for the year 2050. - * Get total and unlocked STX supply (results formatted the same as the legacy 1.0 API) - */ - async getTotalStxSupplyLegacyFormat(requestParameters: GetTotalStxSupplyLegacyFormatRequest, initOverrides?: RequestInit): Promise { - const response = await this.getTotalStxSupplyLegacyFormatRaw(requestParameters, initOverrides); - return await response.value(); - } - -} - -/** - * @export - * @enum {string} - */ -export enum GetNetworkBlockTimeByNetworkNetworkEnum { - testnet = 'testnet', - mainnet = 'mainnet' -} diff --git a/client/src/generated/apis/MempoolApi.ts b/client/src/generated/apis/MempoolApi.ts deleted file mode 100644 index 94c7a8e11..000000000 --- a/client/src/generated/apis/MempoolApi.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - MempoolFeePriorities, - MempoolFeePrioritiesFromJSON, - MempoolFeePrioritiesToJSON, -} from '../models'; - -/** - * MempoolApi - interface - * - * @export - * @interface MempoolApiInterface - */ -export interface MempoolApiInterface { - /** - * Returns estimated fee priorities (in micro-STX) for all transactions that are currently in the mempool. Also returns priorities separated by transaction type. - * @summary Get mempool transaction fee priorities - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof MempoolApiInterface - */ - getMempoolFeePrioritiesRaw(initOverrides?: RequestInit): Promise>; - - /** - * Returns estimated fee priorities (in micro-STX) for all transactions that are currently in the mempool. Also returns priorities separated by transaction type. - * Get mempool transaction fee priorities - */ - getMempoolFeePriorities(initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class MempoolApi extends runtime.BaseAPI implements MempoolApiInterface { - - /** - * Returns estimated fee priorities (in micro-STX) for all transactions that are currently in the mempool. Also returns priorities separated by transaction type. - * Get mempool transaction fee priorities - */ - async getMempoolFeePrioritiesRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v2/mempool/fees`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => MempoolFeePrioritiesFromJSON(jsonValue)); - } - - /** - * Returns estimated fee priorities (in micro-STX) for all transactions that are currently in the mempool. Also returns priorities separated by transaction type. - * Get mempool transaction fee priorities - */ - async getMempoolFeePriorities(initOverrides?: RequestInit): Promise { - const response = await this.getMempoolFeePrioritiesRaw(initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/MicroblocksApi.ts b/client/src/generated/apis/MicroblocksApi.ts deleted file mode 100644 index 3ce87be70..000000000 --- a/client/src/generated/apis/MicroblocksApi.ts +++ /dev/null @@ -1,196 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - Microblock, - MicroblockFromJSON, - MicroblockToJSON, - MicroblockListResponse, - MicroblockListResponseFromJSON, - MicroblockListResponseToJSON, - UnanchoredTransactionListResponse, - UnanchoredTransactionListResponseFromJSON, - UnanchoredTransactionListResponseToJSON, -} from '../models'; - -export interface GetMicroblockByHashRequest { - hash: string; -} - -export interface GetMicroblockListRequest { - limit?: number; - offset?: number; -} - -/** - * MicroblocksApi - interface - * - * @export - * @interface MicroblocksApiInterface - */ -export interface MicroblocksApiInterface { - /** - * Retrieves a specific microblock by `hash` - * @summary Get microblock - * @param {string} hash Hash of the microblock - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof MicroblocksApiInterface - */ - getMicroblockByHashRaw(requestParameters: GetMicroblockByHashRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a specific microblock by `hash` - * Get microblock - */ - getMicroblockByHash(requestParameters: GetMicroblockByHashRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of microblocks. If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * @summary Get recent microblocks - * @param {number} [limit] Max number of microblocks to fetch - * @param {number} [offset] Index of the first microblock to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof MicroblocksApiInterface - */ - getMicroblockListRaw(requestParameters: GetMicroblockListRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of microblocks. If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get recent microblocks - */ - getMicroblockList(requestParameters: GetMicroblockListRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves transactions that have been streamed in microblocks but not yet accepted or rejected in an anchor block - * @summary Get the list of current transactions that belong to unanchored microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof MicroblocksApiInterface - */ - getUnanchoredTxsRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves transactions that have been streamed in microblocks but not yet accepted or rejected in an anchor block - * Get the list of current transactions that belong to unanchored microblocks - */ - getUnanchoredTxs(initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class MicroblocksApi extends runtime.BaseAPI implements MicroblocksApiInterface { - - /** - * Retrieves a specific microblock by `hash` - * Get microblock - */ - async getMicroblockByHashRaw(requestParameters: GetMicroblockByHashRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.hash === null || requestParameters.hash === undefined) { - throw new runtime.RequiredError('hash','Required parameter requestParameters.hash was null or undefined when calling getMicroblockByHash.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/microblock/{hash}`.replace(`{${"hash"}}`, encodeURIComponent(String(requestParameters.hash))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => MicroblockFromJSON(jsonValue)); - } - - /** - * Retrieves a specific microblock by `hash` - * Get microblock - */ - async getMicroblockByHash(requestParameters: GetMicroblockByHashRequest, initOverrides?: RequestInit): Promise { - const response = await this.getMicroblockByHashRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of microblocks. If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get recent microblocks - */ - async getMicroblockListRaw(requestParameters: GetMicroblockListRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/microblock`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => MicroblockListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of microblocks. If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get recent microblocks - */ - async getMicroblockList(requestParameters: GetMicroblockListRequest, initOverrides?: RequestInit): Promise { - const response = await this.getMicroblockListRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves transactions that have been streamed in microblocks but not yet accepted or rejected in an anchor block - * Get the list of current transactions that belong to unanchored microblocks - */ - async getUnanchoredTxsRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/microblock/unanchored/txs`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => UnanchoredTransactionListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves transactions that have been streamed in microblocks but not yet accepted or rejected in an anchor block - * Get the list of current transactions that belong to unanchored microblocks - */ - async getUnanchoredTxs(initOverrides?: RequestInit): Promise { - const response = await this.getUnanchoredTxsRaw(initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/NamesApi.ts b/client/src/generated/apis/NamesApi.ts deleted file mode 100644 index d605968e6..000000000 --- a/client/src/generated/apis/NamesApi.ts +++ /dev/null @@ -1,581 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - BnsError, - BnsErrorFromJSON, - BnsErrorToJSON, - BnsGetAllNamespacesResponse, - BnsGetAllNamespacesResponseFromJSON, - BnsGetAllNamespacesResponseToJSON, - BnsGetNameInfoResponse, - BnsGetNameInfoResponseFromJSON, - BnsGetNameInfoResponseToJSON, - BnsGetNamePriceResponse, - BnsGetNamePriceResponseFromJSON, - BnsGetNamePriceResponseToJSON, - BnsGetNamespacePriceResponse, - BnsGetNamespacePriceResponseFromJSON, - BnsGetNamespacePriceResponseToJSON, - BnsNamesOwnByAddressResponse, - BnsNamesOwnByAddressResponseFromJSON, - BnsNamesOwnByAddressResponseToJSON, -} from '../models'; - -export interface FetchSubdomainsListForNameRequest { - name: string; -} - -export interface FetchZoneFileRequest { - name: string; -} - -export interface GetAllNamesRequest { - page?: number; -} - -export interface GetHistoricalZoneFileRequest { - name: string; - zoneFileHash: string; -} - -export interface GetNameInfoRequest { - name: string; -} - -export interface GetNamePriceRequest { - name: string; -} - -export interface GetNamesOwnedByAddressRequest { - blockchain: string; - address: string; -} - -export interface GetNamespaceNamesRequest { - tld: string; - page?: number; -} - -export interface GetNamespacePriceRequest { - tld: string; -} - -/** - * NamesApi - interface - * - * @export - * @interface NamesApiInterface - */ -export interface NamesApiInterface { - /** - * Retrieves the list of subdomains for a specific name - * @summary Get Name Subdomains - * @param {string} name fully-qualified name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - fetchSubdomainsListForNameRaw(requestParameters: FetchSubdomainsListForNameRequest, initOverrides?: RequestInit): Promise>>; - - /** - * Retrieves the list of subdomains for a specific name - * Get Name Subdomains - */ - fetchSubdomainsListForName(requestParameters: FetchSubdomainsListForNameRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a user’s raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. - * @summary Get Zone File - * @param {string} name fully-qualified name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - fetchZoneFileRaw(requestParameters: FetchZoneFileRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a user’s raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. - * Get Zone File - */ - fetchZoneFile(requestParameters: FetchZoneFileRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of all names known to the node. - * @summary Get All Names - * @param {number} [page] names are defaulted to page 1 with 100 results. You can query specific page results by using the \'page\' query parameter. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - getAllNamesRaw(requestParameters: GetAllNamesRequest, initOverrides?: RequestInit): Promise>>; - - /** - * Retrieves a list of all names known to the node. - * Get All Names - */ - getAllNames(requestParameters: GetAllNamesRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of all namespaces known to the node. - * @summary Get All Namespaces - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - getAllNamespacesRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of all namespaces known to the node. - * Get All Namespaces - */ - getAllNamespaces(initOverrides?: RequestInit): Promise; - - /** - * Retrieves the historical zonefile specified by the username and zone hash. - * @summary Get Historical Zone File - * @param {string} name fully-qualified name - * @param {string} zoneFileHash zone file hash - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - getHistoricalZoneFileRaw(requestParameters: GetHistoricalZoneFileRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the historical zonefile specified by the username and zone hash. - * Get Historical Zone File - */ - getHistoricalZoneFile(requestParameters: GetHistoricalZoneFileRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves details of a given name including the `address`, `status` and last transaction id - `last_txid`. - * @summary Get Name Details - * @param {string} name fully-qualified name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - getNameInfoRaw(requestParameters: GetNameInfoRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves details of a given name including the `address`, `status` and last transaction id - `last_txid`. - * Get Name Details - */ - getNameInfo(requestParameters: GetNameInfoRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the price of a name. The `amount` given will be in the smallest possible units of the currency. - * @summary Get Name Price - * @param {string} name the name to query price information for - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - getNamePriceRaw(requestParameters: GetNamePriceRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the price of a name. The `amount` given will be in the smallest possible units of the currency. - * Get Name Price - */ - getNamePrice(requestParameters: GetNamePriceRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of names owned by the address provided. - * @summary Get Names Owned by Address - * @param {string} blockchain the layer-1 blockchain for the address - * @param {string} address the address to lookup - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - getNamesOwnedByAddressRaw(requestParameters: GetNamesOwnedByAddressRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of names owned by the address provided. - * Get Names Owned by Address - */ - getNamesOwnedByAddress(requestParameters: GetNamesOwnedByAddressRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of names within a given namespace. - * @summary Get Namespace Names - * @param {string} tld the namespace to fetch names from. - * @param {number} [page] namespace values are defaulted to page 1 with 100 results. You can query specific page results by using the \'page\' query parameter. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - getNamespaceNamesRaw(requestParameters: GetNamespaceNamesRequest, initOverrides?: RequestInit): Promise>>; - - /** - * Retrieves a list of names within a given namespace. - * Get Namespace Names - */ - getNamespaceNames(requestParameters: GetNamespaceNamesRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the price of a namespace. The `amount` given will be in the smallest possible units of the currency. - * @summary Get Namespace Price - * @param {string} tld the namespace to fetch price for - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NamesApiInterface - */ - getNamespacePriceRaw(requestParameters: GetNamespacePriceRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the price of a namespace. The `amount` given will be in the smallest possible units of the currency. - * Get Namespace Price - */ - getNamespacePrice(requestParameters: GetNamespacePriceRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class NamesApi extends runtime.BaseAPI implements NamesApiInterface { - - /** - * Retrieves the list of subdomains for a specific name - * Get Name Subdomains - */ - async fetchSubdomainsListForNameRaw(requestParameters: FetchSubdomainsListForNameRequest, initOverrides?: RequestInit): Promise>> { - if (requestParameters.name === null || requestParameters.name === undefined) { - throw new runtime.RequiredError('name','Required parameter requestParameters.name was null or undefined when calling fetchSubdomainsListForName.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v1/names/{name}/subdomains`.replace(`{${"name"}}`, encodeURIComponent(String(requestParameters.name))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves the list of subdomains for a specific name - * Get Name Subdomains - */ - async fetchSubdomainsListForName(requestParameters: FetchSubdomainsListForNameRequest, initOverrides?: RequestInit): Promise> { - const response = await this.fetchSubdomainsListForNameRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a user’s raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. - * Get Zone File - */ - async fetchZoneFileRaw(requestParameters: FetchZoneFileRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.name === null || requestParameters.name === undefined) { - throw new runtime.RequiredError('name','Required parameter requestParameters.name was null or undefined when calling fetchZoneFile.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v1/names/{name}/zonefile`.replace(`{${"name"}}`, encodeURIComponent(String(requestParameters.name))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves a user’s raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. - * Get Zone File - */ - async fetchZoneFile(requestParameters: FetchZoneFileRequest, initOverrides?: RequestInit): Promise { - const response = await this.fetchZoneFileRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of all names known to the node. - * Get All Names - */ - async getAllNamesRaw(requestParameters: GetAllNamesRequest, initOverrides?: RequestInit): Promise>> { - const queryParameters: any = {}; - - if (requestParameters.page !== undefined) { - queryParameters['page'] = requestParameters.page; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v1/names`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves a list of all names known to the node. - * Get All Names - */ - async getAllNames(requestParameters: GetAllNamesRequest, initOverrides?: RequestInit): Promise> { - const response = await this.getAllNamesRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of all namespaces known to the node. - * Get All Namespaces - */ - async getAllNamespacesRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v1/namespaces`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BnsGetAllNamespacesResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of all namespaces known to the node. - * Get All Namespaces - */ - async getAllNamespaces(initOverrides?: RequestInit): Promise { - const response = await this.getAllNamespacesRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves the historical zonefile specified by the username and zone hash. - * Get Historical Zone File - */ - async getHistoricalZoneFileRaw(requestParameters: GetHistoricalZoneFileRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.name === null || requestParameters.name === undefined) { - throw new runtime.RequiredError('name','Required parameter requestParameters.name was null or undefined when calling getHistoricalZoneFile.'); - } - - if (requestParameters.zoneFileHash === null || requestParameters.zoneFileHash === undefined) { - throw new runtime.RequiredError('zoneFileHash','Required parameter requestParameters.zoneFileHash was null or undefined when calling getHistoricalZoneFile.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v1/names/{name}/zonefile/{zoneFileHash}`.replace(`{${"name"}}`, encodeURIComponent(String(requestParameters.name))).replace(`{${"zoneFileHash"}}`, encodeURIComponent(String(requestParameters.zoneFileHash))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves the historical zonefile specified by the username and zone hash. - * Get Historical Zone File - */ - async getHistoricalZoneFile(requestParameters: GetHistoricalZoneFileRequest, initOverrides?: RequestInit): Promise { - const response = await this.getHistoricalZoneFileRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves details of a given name including the `address`, `status` and last transaction id - `last_txid`. - * Get Name Details - */ - async getNameInfoRaw(requestParameters: GetNameInfoRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.name === null || requestParameters.name === undefined) { - throw new runtime.RequiredError('name','Required parameter requestParameters.name was null or undefined when calling getNameInfo.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v1/names/{name}`.replace(`{${"name"}}`, encodeURIComponent(String(requestParameters.name))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BnsGetNameInfoResponseFromJSON(jsonValue)); - } - - /** - * Retrieves details of a given name including the `address`, `status` and last transaction id - `last_txid`. - * Get Name Details - */ - async getNameInfo(requestParameters: GetNameInfoRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNameInfoRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the price of a name. The `amount` given will be in the smallest possible units of the currency. - * Get Name Price - */ - async getNamePriceRaw(requestParameters: GetNamePriceRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.name === null || requestParameters.name === undefined) { - throw new runtime.RequiredError('name','Required parameter requestParameters.name was null or undefined when calling getNamePrice.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v2/prices/names/{name}`.replace(`{${"name"}}`, encodeURIComponent(String(requestParameters.name))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BnsGetNamePriceResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the price of a name. The `amount` given will be in the smallest possible units of the currency. - * Get Name Price - */ - async getNamePrice(requestParameters: GetNamePriceRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNamePriceRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of names owned by the address provided. - * Get Names Owned by Address - */ - async getNamesOwnedByAddressRaw(requestParameters: GetNamesOwnedByAddressRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.blockchain === null || requestParameters.blockchain === undefined) { - throw new runtime.RequiredError('blockchain','Required parameter requestParameters.blockchain was null or undefined when calling getNamesOwnedByAddress.'); - } - - if (requestParameters.address === null || requestParameters.address === undefined) { - throw new runtime.RequiredError('address','Required parameter requestParameters.address was null or undefined when calling getNamesOwnedByAddress.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v1/addresses/{blockchain}/{address}`.replace(`{${"blockchain"}}`, encodeURIComponent(String(requestParameters.blockchain))).replace(`{${"address"}}`, encodeURIComponent(String(requestParameters.address))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BnsNamesOwnByAddressResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of names owned by the address provided. - * Get Names Owned by Address - */ - async getNamesOwnedByAddress(requestParameters: GetNamesOwnedByAddressRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNamesOwnedByAddressRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of names within a given namespace. - * Get Namespace Names - */ - async getNamespaceNamesRaw(requestParameters: GetNamespaceNamesRequest, initOverrides?: RequestInit): Promise>> { - if (requestParameters.tld === null || requestParameters.tld === undefined) { - throw new runtime.RequiredError('tld','Required parameter requestParameters.tld was null or undefined when calling getNamespaceNames.'); - } - - const queryParameters: any = {}; - - if (requestParameters.page !== undefined) { - queryParameters['page'] = requestParameters.page; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v1/namespaces/{tld}/names`.replace(`{${"tld"}}`, encodeURIComponent(String(requestParameters.tld))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves a list of names within a given namespace. - * Get Namespace Names - */ - async getNamespaceNames(requestParameters: GetNamespaceNamesRequest, initOverrides?: RequestInit): Promise> { - const response = await this.getNamespaceNamesRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the price of a namespace. The `amount` given will be in the smallest possible units of the currency. - * Get Namespace Price - */ - async getNamespacePriceRaw(requestParameters: GetNamespacePriceRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.tld === null || requestParameters.tld === undefined) { - throw new runtime.RequiredError('tld','Required parameter requestParameters.tld was null or undefined when calling getNamespacePrice.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v2/prices/namespaces/{tld}`.replace(`{${"tld"}}`, encodeURIComponent(String(requestParameters.tld))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BnsGetNamespacePriceResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the price of a namespace. The `amount` given will be in the smallest possible units of the currency. - * Get Namespace Price - */ - async getNamespacePrice(requestParameters: GetNamespacePriceRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNamespacePriceRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/NonFungibleTokensApi.ts b/client/src/generated/apis/NonFungibleTokensApi.ts deleted file mode 100644 index 5313556c2..000000000 --- a/client/src/generated/apis/NonFungibleTokensApi.ts +++ /dev/null @@ -1,415 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - NonFungibleTokenHistoryEventList, - NonFungibleTokenHistoryEventListFromJSON, - NonFungibleTokenHistoryEventListToJSON, - NonFungibleTokenHoldingsList, - NonFungibleTokenHoldingsListFromJSON, - NonFungibleTokenHoldingsListToJSON, - NonFungibleTokenMetadata, - NonFungibleTokenMetadataFromJSON, - NonFungibleTokenMetadataToJSON, - NonFungibleTokenMintList, - NonFungibleTokenMintListFromJSON, - NonFungibleTokenMintListToJSON, - NonFungibleTokensMetadataList, - NonFungibleTokensMetadataListFromJSON, - NonFungibleTokensMetadataListToJSON, -} from '../models'; - -export interface GetContractNftMetadataRequest { - contractId: string; -} - -export interface GetNftHistoryRequest { - assetIdentifier: string; - value: string; - limit?: number; - offset?: number; - unanchored?: boolean; - txMetadata?: boolean; -} - -export interface GetNftHoldingsRequest { - principal: string; - assetIdentifiers?: Array; - limit?: number; - offset?: number; - unanchored?: boolean; - txMetadata?: boolean; -} - -export interface GetNftMetadataListRequest { - limit?: number; - offset?: number; -} - -export interface GetNftMintsRequest { - assetIdentifier: string; - limit?: number; - offset?: number; - unanchored?: boolean; - txMetadata?: boolean; -} - -/** - * NonFungibleTokensApi - interface - * - * @export - * @interface NonFungibleTokensApiInterface - */ -export interface NonFungibleTokensApiInterface { - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves metadata for non fungible tokens for a given contract id. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * @summary Non fungible tokens metadata for contract ID - * @param {string} contractId token\'s contract id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NonFungibleTokensApiInterface - */ - getContractNftMetadataRaw(requestParameters: GetContractNftMetadataRequest, initOverrides?: RequestInit): Promise>; - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves metadata for non fungible tokens for a given contract id. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non fungible tokens metadata for contract ID - */ - getContractNftMetadata(requestParameters: GetContractNftMetadataRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves all events relevant to a Non-Fungible Token. Useful to determine the ownership history of a particular asset. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * @summary Non-Fungible Token history - * @param {string} assetIdentifier token asset class identifier - * @param {string} value hex representation of the token\'s unique value - * @param {number} [limit] max number of events to fetch - * @param {number} [offset] index of first event to fetch - * @param {boolean} [unanchored] whether or not to include events from unconfirmed transactions - * @param {boolean} [txMetadata] whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NonFungibleTokensApiInterface - */ - getNftHistoryRaw(requestParameters: GetNftHistoryRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves all events relevant to a Non-Fungible Token. Useful to determine the ownership history of a particular asset. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token history - */ - getNftHistory(requestParameters: GetNftHistoryRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the list of Non-Fungible Tokens owned by the given principal (STX address or Smart Contract ID). Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * @summary Non-Fungible Token holdings - * @param {string} principal token owner\'s STX address or Smart Contract ID - * @param {Array} [assetIdentifiers] identifiers of the token asset classes to filter for - * @param {number} [limit] max number of tokens to fetch - * @param {number} [offset] index of first tokens to fetch - * @param {boolean} [unanchored] whether or not to include tokens from unconfirmed transactions - * @param {boolean} [txMetadata] whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NonFungibleTokensApiInterface - */ - getNftHoldingsRaw(requestParameters: GetNftHoldingsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the list of Non-Fungible Tokens owned by the given principal (STX address or Smart Contract ID). Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token holdings - */ - getNftHoldings(requestParameters: GetNftHoldingsRequest, initOverrides?: RequestInit): Promise; - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves a list of non fungible tokens with their metadata. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * @summary Non fungible tokens metadata list - * @param {number} [limit] max number of tokens to fetch - * @param {number} [offset] index of first tokens to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NonFungibleTokensApiInterface - */ - getNftMetadataListRaw(requestParameters: GetNftMetadataListRequest, initOverrides?: RequestInit): Promise>; - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves a list of non fungible tokens with their metadata. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non fungible tokens metadata list - */ - getNftMetadataList(requestParameters: GetNftMetadataListRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves all mint events for a Non-Fungible Token asset class. Useful to determine which NFTs of a particular collection have been claimed. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * @summary Non-Fungible Token mints - * @param {string} assetIdentifier token asset class identifier - * @param {number} [limit] max number of events to fetch - * @param {number} [offset] index of first event to fetch - * @param {boolean} [unanchored] whether or not to include events from unconfirmed transactions - * @param {boolean} [txMetadata] whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NonFungibleTokensApiInterface - */ - getNftMintsRaw(requestParameters: GetNftMintsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves all mint events for a Non-Fungible Token asset class. Useful to determine which NFTs of a particular collection have been claimed. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token mints - */ - getNftMints(requestParameters: GetNftMintsRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class NonFungibleTokensApi extends runtime.BaseAPI implements NonFungibleTokensApiInterface { - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves metadata for non fungible tokens for a given contract id. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non fungible tokens metadata for contract ID - */ - async getContractNftMetadataRaw(requestParameters: GetContractNftMetadataRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.contractId === null || requestParameters.contractId === undefined) { - throw new runtime.RequiredError('contractId','Required parameter requestParameters.contractId was null or undefined when calling getContractNftMetadata.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tokens/{contractId}/nft/metadata`.replace(`{${"contractId"}}`, encodeURIComponent(String(requestParameters.contractId))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => NonFungibleTokenMetadataFromJSON(jsonValue)); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves metadata for non fungible tokens for a given contract id. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non fungible tokens metadata for contract ID - */ - async getContractNftMetadata(requestParameters: GetContractNftMetadataRequest, initOverrides?: RequestInit): Promise { - const response = await this.getContractNftMetadataRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves all events relevant to a Non-Fungible Token. Useful to determine the ownership history of a particular asset. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token history - */ - async getNftHistoryRaw(requestParameters: GetNftHistoryRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.assetIdentifier === null || requestParameters.assetIdentifier === undefined) { - throw new runtime.RequiredError('assetIdentifier','Required parameter requestParameters.assetIdentifier was null or undefined when calling getNftHistory.'); - } - - if (requestParameters.value === null || requestParameters.value === undefined) { - throw new runtime.RequiredError('value','Required parameter requestParameters.value was null or undefined when calling getNftHistory.'); - } - - const queryParameters: any = {}; - - if (requestParameters.assetIdentifier !== undefined) { - queryParameters['asset_identifier'] = requestParameters.assetIdentifier; - } - - if (requestParameters.value !== undefined) { - queryParameters['value'] = requestParameters.value; - } - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.txMetadata !== undefined) { - queryParameters['tx_metadata'] = requestParameters.txMetadata; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tokens/nft/history`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => NonFungibleTokenHistoryEventListFromJSON(jsonValue)); - } - - /** - * Retrieves all events relevant to a Non-Fungible Token. Useful to determine the ownership history of a particular asset. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token history - */ - async getNftHistory(requestParameters: GetNftHistoryRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNftHistoryRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the list of Non-Fungible Tokens owned by the given principal (STX address or Smart Contract ID). Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token holdings - */ - async getNftHoldingsRaw(requestParameters: GetNftHoldingsRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.principal === null || requestParameters.principal === undefined) { - throw new runtime.RequiredError('principal','Required parameter requestParameters.principal was null or undefined when calling getNftHoldings.'); - } - - const queryParameters: any = {}; - - if (requestParameters.principal !== undefined) { - queryParameters['principal'] = requestParameters.principal; - } - - if (requestParameters.assetIdentifiers) { - queryParameters['asset_identifiers'] = requestParameters.assetIdentifiers; - } - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.txMetadata !== undefined) { - queryParameters['tx_metadata'] = requestParameters.txMetadata; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tokens/nft/holdings`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => NonFungibleTokenHoldingsListFromJSON(jsonValue)); - } - - /** - * Retrieves the list of Non-Fungible Tokens owned by the given principal (STX address or Smart Contract ID). Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token holdings - */ - async getNftHoldings(requestParameters: GetNftHoldingsRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNftHoldingsRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves a list of non fungible tokens with their metadata. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non fungible tokens metadata list - */ - async getNftMetadataListRaw(requestParameters: GetNftMetadataListRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tokens/nft/metadata`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => NonFungibleTokensMetadataListFromJSON(jsonValue)); - } - - /** - * **NOTE:** This endpoint is deprecated in favor of the [Token Metadata Service](https://github.com/hirosystems/token-metadata-service). Retrieves a list of non fungible tokens with their metadata. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non fungible tokens metadata list - */ - async getNftMetadataList(requestParameters: GetNftMetadataListRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNftMetadataListRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves all mint events for a Non-Fungible Token asset class. Useful to determine which NFTs of a particular collection have been claimed. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token mints - */ - async getNftMintsRaw(requestParameters: GetNftMintsRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.assetIdentifier === null || requestParameters.assetIdentifier === undefined) { - throw new runtime.RequiredError('assetIdentifier','Required parameter requestParameters.assetIdentifier was null or undefined when calling getNftMints.'); - } - - const queryParameters: any = {}; - - if (requestParameters.assetIdentifier !== undefined) { - queryParameters['asset_identifier'] = requestParameters.assetIdentifier; - } - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.txMetadata !== undefined) { - queryParameters['tx_metadata'] = requestParameters.txMetadata; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tokens/nft/mints`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => NonFungibleTokenMintListFromJSON(jsonValue)); - } - - /** - * Retrieves all mint events for a Non-Fungible Token asset class. Useful to determine which NFTs of a particular collection have been claimed. More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). - * Non-Fungible Token mints - */ - async getNftMints(requestParameters: GetNftMintsRequest, initOverrides?: RequestInit): Promise { - const response = await this.getNftMintsRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/RosettaApi.ts b/client/src/generated/apis/RosettaApi.ts deleted file mode 100644 index 9bcd140db..000000000 --- a/client/src/generated/apis/RosettaApi.ts +++ /dev/null @@ -1,998 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - RosettaAccountBalanceRequest, - RosettaAccountBalanceRequestFromJSON, - RosettaAccountBalanceRequestToJSON, - RosettaAccountBalanceResponse, - RosettaAccountBalanceResponseFromJSON, - RosettaAccountBalanceResponseToJSON, - RosettaBlockRequest, - RosettaBlockRequestFromJSON, - RosettaBlockRequestToJSON, - RosettaBlockResponse, - RosettaBlockResponseFromJSON, - RosettaBlockResponseToJSON, - RosettaBlockTransactionRequest, - RosettaBlockTransactionRequestFromJSON, - RosettaBlockTransactionRequestToJSON, - RosettaBlockTransactionResponse, - RosettaBlockTransactionResponseFromJSON, - RosettaBlockTransactionResponseToJSON, - RosettaConstructionCombineRequest, - RosettaConstructionCombineRequestFromJSON, - RosettaConstructionCombineRequestToJSON, - RosettaConstructionCombineResponse, - RosettaConstructionCombineResponseFromJSON, - RosettaConstructionCombineResponseToJSON, - RosettaConstructionDeriveRequest, - RosettaConstructionDeriveRequestFromJSON, - RosettaConstructionDeriveRequestToJSON, - RosettaConstructionDeriveResponse, - RosettaConstructionDeriveResponseFromJSON, - RosettaConstructionDeriveResponseToJSON, - RosettaConstructionHashRequest, - RosettaConstructionHashRequestFromJSON, - RosettaConstructionHashRequestToJSON, - RosettaConstructionHashResponse, - RosettaConstructionHashResponseFromJSON, - RosettaConstructionHashResponseToJSON, - RosettaConstructionMetadataRequest, - RosettaConstructionMetadataRequestFromJSON, - RosettaConstructionMetadataRequestToJSON, - RosettaConstructionMetadataResponse, - RosettaConstructionMetadataResponseFromJSON, - RosettaConstructionMetadataResponseToJSON, - RosettaConstructionParseRequest, - RosettaConstructionParseRequestFromJSON, - RosettaConstructionParseRequestToJSON, - RosettaConstructionParseResponse, - RosettaConstructionParseResponseFromJSON, - RosettaConstructionParseResponseToJSON, - RosettaConstructionPayloadResponse, - RosettaConstructionPayloadResponseFromJSON, - RosettaConstructionPayloadResponseToJSON, - RosettaConstructionPayloadsRequest, - RosettaConstructionPayloadsRequestFromJSON, - RosettaConstructionPayloadsRequestToJSON, - RosettaConstructionPreprocessRequest, - RosettaConstructionPreprocessRequestFromJSON, - RosettaConstructionPreprocessRequestToJSON, - RosettaConstructionPreprocessResponse, - RosettaConstructionPreprocessResponseFromJSON, - RosettaConstructionPreprocessResponseToJSON, - RosettaConstructionSubmitRequest, - RosettaConstructionSubmitRequestFromJSON, - RosettaConstructionSubmitRequestToJSON, - RosettaConstructionSubmitResponse, - RosettaConstructionSubmitResponseFromJSON, - RosettaConstructionSubmitResponseToJSON, - RosettaError, - RosettaErrorFromJSON, - RosettaErrorToJSON, - RosettaMempoolRequest, - RosettaMempoolRequestFromJSON, - RosettaMempoolRequestToJSON, - RosettaMempoolResponse, - RosettaMempoolResponseFromJSON, - RosettaMempoolResponseToJSON, - RosettaMempoolTransactionRequest, - RosettaMempoolTransactionRequestFromJSON, - RosettaMempoolTransactionRequestToJSON, - RosettaMempoolTransactionResponse, - RosettaMempoolTransactionResponseFromJSON, - RosettaMempoolTransactionResponseToJSON, - RosettaNetworkListResponse, - RosettaNetworkListResponseFromJSON, - RosettaNetworkListResponseToJSON, - RosettaNetworkOptionsResponse, - RosettaNetworkOptionsResponseFromJSON, - RosettaNetworkOptionsResponseToJSON, - RosettaNetworkStatusResponse, - RosettaNetworkStatusResponseFromJSON, - RosettaNetworkStatusResponseToJSON, - RosettaOptionsRequest, - RosettaOptionsRequestFromJSON, - RosettaOptionsRequestToJSON, - RosettaStatusRequest, - RosettaStatusRequestFromJSON, - RosettaStatusRequestToJSON, -} from '../models'; - -export interface RosettaAccountBalanceOperationRequest { - rosettaAccountBalanceRequest: RosettaAccountBalanceRequest; -} - -export interface RosettaBlockOperationRequest { - rosettaBlockRequest: RosettaBlockRequest; -} - -export interface RosettaBlockTransactionOperationRequest { - rosettaBlockTransactionRequest: RosettaBlockTransactionRequest; -} - -export interface RosettaConstructionCombineOperationRequest { - rosettaConstructionCombineRequest: RosettaConstructionCombineRequest; -} - -export interface RosettaConstructionDeriveOperationRequest { - rosettaConstructionDeriveRequest: RosettaConstructionDeriveRequest; -} - -export interface RosettaConstructionHashOperationRequest { - rosettaConstructionHashRequest: RosettaConstructionHashRequest; -} - -export interface RosettaConstructionMetadataOperationRequest { - rosettaConstructionMetadataRequest: RosettaConstructionMetadataRequest; -} - -export interface RosettaConstructionParseOperationRequest { - rosettaConstructionParseRequest: RosettaConstructionParseRequest; -} - -export interface RosettaConstructionPayloadsOperationRequest { - rosettaConstructionPayloadsRequest: RosettaConstructionPayloadsRequest; -} - -export interface RosettaConstructionPreprocessOperationRequest { - rosettaConstructionPreprocessRequest: RosettaConstructionPreprocessRequest; -} - -export interface RosettaConstructionSubmitOperationRequest { - rosettaConstructionSubmitRequest: RosettaConstructionSubmitRequest; -} - -export interface RosettaMempoolOperationRequest { - rosettaMempoolRequest: RosettaMempoolRequest; -} - -export interface RosettaMempoolTransactionOperationRequest { - rosettaMempoolTransactionRequest: RosettaMempoolTransactionRequest; -} - -export interface RosettaNetworkOptionsRequest { - rosettaOptionsRequest: RosettaOptionsRequest; -} - -export interface RosettaNetworkStatusRequest { - rosettaStatusRequest: RosettaStatusRequest; -} - -/** - * RosettaApi - interface - * - * @export - * @interface RosettaApiInterface - */ -export interface RosettaApiInterface { - /** - * An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. If the block_identifier is populated, a historical balance query should be performed. - * @summary Get an Account Balance - * @param {RosettaAccountBalanceRequest} rosettaAccountBalanceRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaAccountBalanceRaw(requestParameters: RosettaAccountBalanceOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. If the block_identifier is populated, a historical balance query should be performed. - * Get an Account Balance - */ - rosettaAccountBalance(requestParameters: RosettaAccountBalanceOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the Block information for a given block identifier including a list of all transactions in the block. - * @summary Get a Block - * @param {RosettaBlockRequest} rosettaBlockRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaBlockRaw(requestParameters: RosettaBlockOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the Block information for a given block identifier including a list of all transactions in the block. - * Get a Block - */ - rosettaBlock(requestParameters: RosettaBlockOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a Transaction included in a block that is not returned in a BlockResponse. - * @summary Get a Block Transaction - * @param {RosettaBlockTransactionRequest} rosettaBlockTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaBlockTransactionRaw(requestParameters: RosettaBlockTransactionOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a Transaction included in a block that is not returned in a BlockResponse. - * Get a Block Transaction - */ - rosettaBlockTransaction(requestParameters: RosettaBlockTransactionOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Take unsigned transaction and signature, combine both and return signed transaction. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * @summary Create Network Transaction from Signatures - * @param {RosettaConstructionCombineRequest} rosettaConstructionCombineRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaConstructionCombineRaw(requestParameters: RosettaConstructionCombineOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Take unsigned transaction and signature, combine both and return signed transaction. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Create Network Transaction from Signatures - */ - rosettaConstructionCombine(requestParameters: RosettaConstructionCombineOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the Account Identifier information based on a Public Key for a given network - * @summary Derive an AccountIdentifier from a PublicKey - * @param {RosettaConstructionDeriveRequest} rosettaConstructionDeriveRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaConstructionDeriveRaw(requestParameters: RosettaConstructionDeriveOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the Account Identifier information based on a Public Key for a given network - * Derive an AccountIdentifier from a PublicKey - */ - rosettaConstructionDerive(requestParameters: RosettaConstructionDeriveOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the network-specific transaction hash for a signed transaction. - * @summary Get the Hash of a Signed Transaction - * @param {RosettaConstructionHashRequest} rosettaConstructionHashRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaConstructionHashRaw(requestParameters: RosettaConstructionHashOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the network-specific transaction hash for a signed transaction. - * Get the Hash of a Signed Transaction - */ - rosettaConstructionHash(requestParameters: RosettaConstructionHashOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * To Do - * @summary Get Metadata for Transaction Construction - * @param {RosettaConstructionMetadataRequest} rosettaConstructionMetadataRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaConstructionMetadataRaw(requestParameters: RosettaConstructionMetadataOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * To Do - * Get Metadata for Transaction Construction - */ - rosettaConstructionMetadata(requestParameters: RosettaConstructionMetadataOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * TODO - * @summary Parse a Transaction - * @param {RosettaConstructionParseRequest} rosettaConstructionParseRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaConstructionParseRaw(requestParameters: RosettaConstructionParseOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * TODO - * Parse a Transaction - */ - rosettaConstructionParse(requestParameters: RosettaConstructionParseOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Generate an unsigned transaction from operations and metadata. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * @summary Generate an Unsigned Transaction and Signing Payloads - * @param {RosettaConstructionPayloadsRequest} rosettaConstructionPayloadsRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaConstructionPayloadsRaw(requestParameters: RosettaConstructionPayloadsOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Generate an unsigned transaction from operations and metadata. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Generate an Unsigned Transaction and Signing Payloads - */ - rosettaConstructionPayloads(requestParameters: RosettaConstructionPayloadsOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * TODO - * @summary Create a Request to Fetch Metadata - * @param {RosettaConstructionPreprocessRequest} rosettaConstructionPreprocessRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaConstructionPreprocessRaw(requestParameters: RosettaConstructionPreprocessOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * TODO - * Create a Request to Fetch Metadata - */ - rosettaConstructionPreprocess(requestParameters: RosettaConstructionPreprocessOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Submit a pre-signed transaction to the node. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * @summary Submit a Signed Transaction - * @param {RosettaConstructionSubmitRequest} rosettaConstructionSubmitRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaConstructionSubmitRaw(requestParameters: RosettaConstructionSubmitOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Submit a pre-signed transaction to the node. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Submit a Signed Transaction - */ - rosettaConstructionSubmit(requestParameters: RosettaConstructionSubmitOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of transactions currently in the mempool for a given network. - * @summary Get All Mempool Transactions - * @param {RosettaMempoolRequest} rosettaMempoolRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaMempoolRaw(requestParameters: RosettaMempoolOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of transactions currently in the mempool for a given network. - * Get All Mempool Transactions - */ - rosettaMempool(requestParameters: RosettaMempoolOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves transaction details from the mempool for a given transaction id from a given network. - * @summary Get a Mempool Transaction - * @param {RosettaMempoolTransactionRequest} rosettaMempoolTransactionRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaMempoolTransactionRaw(requestParameters: RosettaMempoolTransactionOperationRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves transaction details from the mempool for a given transaction id from a given network. - * Get a Mempool Transaction - */ - rosettaMempoolTransaction(requestParameters: RosettaMempoolTransactionOperationRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of NetworkIdentifiers that the Rosetta server supports. - * @summary Get List of Available Networks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaNetworkListRaw(initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of NetworkIdentifiers that the Rosetta server supports. - * Get List of Available Networks - */ - rosettaNetworkList(initOverrides?: RequestInit): Promise; - - /** - * Retrieves the version information and allowed network-specific types for a NetworkIdentifier. Any NetworkIdentifier returned by /network/list should be accessible here. Because options are retrievable in the context of a NetworkIdentifier, it is possible to define unique options for each network. - * @summary Get Network Options - * @param {RosettaOptionsRequest} rosettaOptionsRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaNetworkOptionsRaw(requestParameters: RosettaNetworkOptionsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the version information and allowed network-specific types for a NetworkIdentifier. Any NetworkIdentifier returned by /network/list should be accessible here. Because options are retrievable in the context of a NetworkIdentifier, it is possible to define unique options for each network. - * Get Network Options - */ - rosettaNetworkOptions(requestParameters: RosettaNetworkOptionsRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the current status of the network requested. Any NetworkIdentifier returned by /network/list should be accessible here. - * @summary Get Network Status - * @param {RosettaStatusRequest} rosettaStatusRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof RosettaApiInterface - */ - rosettaNetworkStatusRaw(requestParameters: RosettaNetworkStatusRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the current status of the network requested. Any NetworkIdentifier returned by /network/list should be accessible here. - * Get Network Status - */ - rosettaNetworkStatus(requestParameters: RosettaNetworkStatusRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class RosettaApi extends runtime.BaseAPI implements RosettaApiInterface { - - /** - * An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. If the block_identifier is populated, a historical balance query should be performed. - * Get an Account Balance - */ - async rosettaAccountBalanceRaw(requestParameters: RosettaAccountBalanceOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaAccountBalanceRequest === null || requestParameters.rosettaAccountBalanceRequest === undefined) { - throw new runtime.RequiredError('rosettaAccountBalanceRequest','Required parameter requestParameters.rosettaAccountBalanceRequest was null or undefined when calling rosettaAccountBalance.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/account/balance`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaAccountBalanceRequestToJSON(requestParameters.rosettaAccountBalanceRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaAccountBalanceResponseFromJSON(jsonValue)); - } - - /** - * An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. If the block_identifier is populated, a historical balance query should be performed. - * Get an Account Balance - */ - async rosettaAccountBalance(requestParameters: RosettaAccountBalanceOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaAccountBalanceRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the Block information for a given block identifier including a list of all transactions in the block. - * Get a Block - */ - async rosettaBlockRaw(requestParameters: RosettaBlockOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaBlockRequest === null || requestParameters.rosettaBlockRequest === undefined) { - throw new runtime.RequiredError('rosettaBlockRequest','Required parameter requestParameters.rosettaBlockRequest was null or undefined when calling rosettaBlock.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/block`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaBlockRequestToJSON(requestParameters.rosettaBlockRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaBlockResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the Block information for a given block identifier including a list of all transactions in the block. - * Get a Block - */ - async rosettaBlock(requestParameters: RosettaBlockOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaBlockRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a Transaction included in a block that is not returned in a BlockResponse. - * Get a Block Transaction - */ - async rosettaBlockTransactionRaw(requestParameters: RosettaBlockTransactionOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaBlockTransactionRequest === null || requestParameters.rosettaBlockTransactionRequest === undefined) { - throw new runtime.RequiredError('rosettaBlockTransactionRequest','Required parameter requestParameters.rosettaBlockTransactionRequest was null or undefined when calling rosettaBlockTransaction.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/block/transaction`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaBlockTransactionRequestToJSON(requestParameters.rosettaBlockTransactionRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaBlockTransactionResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a Transaction included in a block that is not returned in a BlockResponse. - * Get a Block Transaction - */ - async rosettaBlockTransaction(requestParameters: RosettaBlockTransactionOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaBlockTransactionRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Take unsigned transaction and signature, combine both and return signed transaction. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Create Network Transaction from Signatures - */ - async rosettaConstructionCombineRaw(requestParameters: RosettaConstructionCombineOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaConstructionCombineRequest === null || requestParameters.rosettaConstructionCombineRequest === undefined) { - throw new runtime.RequiredError('rosettaConstructionCombineRequest','Required parameter requestParameters.rosettaConstructionCombineRequest was null or undefined when calling rosettaConstructionCombine.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/construction/combine`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaConstructionCombineRequestToJSON(requestParameters.rosettaConstructionCombineRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaConstructionCombineResponseFromJSON(jsonValue)); - } - - /** - * Take unsigned transaction and signature, combine both and return signed transaction. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Create Network Transaction from Signatures - */ - async rosettaConstructionCombine(requestParameters: RosettaConstructionCombineOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaConstructionCombineRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the Account Identifier information based on a Public Key for a given network - * Derive an AccountIdentifier from a PublicKey - */ - async rosettaConstructionDeriveRaw(requestParameters: RosettaConstructionDeriveOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaConstructionDeriveRequest === null || requestParameters.rosettaConstructionDeriveRequest === undefined) { - throw new runtime.RequiredError('rosettaConstructionDeriveRequest','Required parameter requestParameters.rosettaConstructionDeriveRequest was null or undefined when calling rosettaConstructionDerive.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/construction/derive`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaConstructionDeriveRequestToJSON(requestParameters.rosettaConstructionDeriveRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaConstructionDeriveResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the Account Identifier information based on a Public Key for a given network - * Derive an AccountIdentifier from a PublicKey - */ - async rosettaConstructionDerive(requestParameters: RosettaConstructionDeriveOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaConstructionDeriveRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the network-specific transaction hash for a signed transaction. - * Get the Hash of a Signed Transaction - */ - async rosettaConstructionHashRaw(requestParameters: RosettaConstructionHashOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaConstructionHashRequest === null || requestParameters.rosettaConstructionHashRequest === undefined) { - throw new runtime.RequiredError('rosettaConstructionHashRequest','Required parameter requestParameters.rosettaConstructionHashRequest was null or undefined when calling rosettaConstructionHash.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/construction/hash`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaConstructionHashRequestToJSON(requestParameters.rosettaConstructionHashRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaConstructionHashResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the network-specific transaction hash for a signed transaction. - * Get the Hash of a Signed Transaction - */ - async rosettaConstructionHash(requestParameters: RosettaConstructionHashOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaConstructionHashRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * To Do - * Get Metadata for Transaction Construction - */ - async rosettaConstructionMetadataRaw(requestParameters: RosettaConstructionMetadataOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaConstructionMetadataRequest === null || requestParameters.rosettaConstructionMetadataRequest === undefined) { - throw new runtime.RequiredError('rosettaConstructionMetadataRequest','Required parameter requestParameters.rosettaConstructionMetadataRequest was null or undefined when calling rosettaConstructionMetadata.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/construction/metadata`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaConstructionMetadataRequestToJSON(requestParameters.rosettaConstructionMetadataRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaConstructionMetadataResponseFromJSON(jsonValue)); - } - - /** - * To Do - * Get Metadata for Transaction Construction - */ - async rosettaConstructionMetadata(requestParameters: RosettaConstructionMetadataOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaConstructionMetadataRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * TODO - * Parse a Transaction - */ - async rosettaConstructionParseRaw(requestParameters: RosettaConstructionParseOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaConstructionParseRequest === null || requestParameters.rosettaConstructionParseRequest === undefined) { - throw new runtime.RequiredError('rosettaConstructionParseRequest','Required parameter requestParameters.rosettaConstructionParseRequest was null or undefined when calling rosettaConstructionParse.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/construction/parse`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaConstructionParseRequestToJSON(requestParameters.rosettaConstructionParseRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaConstructionParseResponseFromJSON(jsonValue)); - } - - /** - * TODO - * Parse a Transaction - */ - async rosettaConstructionParse(requestParameters: RosettaConstructionParseOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaConstructionParseRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Generate an unsigned transaction from operations and metadata. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Generate an Unsigned Transaction and Signing Payloads - */ - async rosettaConstructionPayloadsRaw(requestParameters: RosettaConstructionPayloadsOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaConstructionPayloadsRequest === null || requestParameters.rosettaConstructionPayloadsRequest === undefined) { - throw new runtime.RequiredError('rosettaConstructionPayloadsRequest','Required parameter requestParameters.rosettaConstructionPayloadsRequest was null or undefined when calling rosettaConstructionPayloads.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/construction/payloads`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaConstructionPayloadsRequestToJSON(requestParameters.rosettaConstructionPayloadsRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaConstructionPayloadResponseFromJSON(jsonValue)); - } - - /** - * Generate an unsigned transaction from operations and metadata. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Generate an Unsigned Transaction and Signing Payloads - */ - async rosettaConstructionPayloads(requestParameters: RosettaConstructionPayloadsOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaConstructionPayloadsRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * TODO - * Create a Request to Fetch Metadata - */ - async rosettaConstructionPreprocessRaw(requestParameters: RosettaConstructionPreprocessOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaConstructionPreprocessRequest === null || requestParameters.rosettaConstructionPreprocessRequest === undefined) { - throw new runtime.RequiredError('rosettaConstructionPreprocessRequest','Required parameter requestParameters.rosettaConstructionPreprocessRequest was null or undefined when calling rosettaConstructionPreprocess.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/construction/preprocess`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaConstructionPreprocessRequestToJSON(requestParameters.rosettaConstructionPreprocessRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaConstructionPreprocessResponseFromJSON(jsonValue)); - } - - /** - * TODO - * Create a Request to Fetch Metadata - */ - async rosettaConstructionPreprocess(requestParameters: RosettaConstructionPreprocessOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaConstructionPreprocessRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Submit a pre-signed transaction to the node. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Submit a Signed Transaction - */ - async rosettaConstructionSubmitRaw(requestParameters: RosettaConstructionSubmitOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaConstructionSubmitRequest === null || requestParameters.rosettaConstructionSubmitRequest === undefined) { - throw new runtime.RequiredError('rosettaConstructionSubmitRequest','Required parameter requestParameters.rosettaConstructionSubmitRequest was null or undefined when calling rosettaConstructionSubmit.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/construction/submit`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaConstructionSubmitRequestToJSON(requestParameters.rosettaConstructionSubmitRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaConstructionSubmitResponseFromJSON(jsonValue)); - } - - /** - * Submit a pre-signed transaction to the node. The examples below are illustrative only. You\'ll need to use your wallet to generate actual values to use them in the request payload. - * Submit a Signed Transaction - */ - async rosettaConstructionSubmit(requestParameters: RosettaConstructionSubmitOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaConstructionSubmitRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of transactions currently in the mempool for a given network. - * Get All Mempool Transactions - */ - async rosettaMempoolRaw(requestParameters: RosettaMempoolOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaMempoolRequest === null || requestParameters.rosettaMempoolRequest === undefined) { - throw new runtime.RequiredError('rosettaMempoolRequest','Required parameter requestParameters.rosettaMempoolRequest was null or undefined when calling rosettaMempool.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/mempool`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaMempoolRequestToJSON(requestParameters.rosettaMempoolRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaMempoolResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of transactions currently in the mempool for a given network. - * Get All Mempool Transactions - */ - async rosettaMempool(requestParameters: RosettaMempoolOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaMempoolRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves transaction details from the mempool for a given transaction id from a given network. - * Get a Mempool Transaction - */ - async rosettaMempoolTransactionRaw(requestParameters: RosettaMempoolTransactionOperationRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaMempoolTransactionRequest === null || requestParameters.rosettaMempoolTransactionRequest === undefined) { - throw new runtime.RequiredError('rosettaMempoolTransactionRequest','Required parameter requestParameters.rosettaMempoolTransactionRequest was null or undefined when calling rosettaMempoolTransaction.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/mempool/transaction`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaMempoolTransactionRequestToJSON(requestParameters.rosettaMempoolTransactionRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaMempoolTransactionResponseFromJSON(jsonValue)); - } - - /** - * Retrieves transaction details from the mempool for a given transaction id from a given network. - * Get a Mempool Transaction - */ - async rosettaMempoolTransaction(requestParameters: RosettaMempoolTransactionOperationRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaMempoolTransactionRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of NetworkIdentifiers that the Rosetta server supports. - * Get List of Available Networks - */ - async rosettaNetworkListRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/rosetta/v1/network/list`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaNetworkListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of NetworkIdentifiers that the Rosetta server supports. - * Get List of Available Networks - */ - async rosettaNetworkList(initOverrides?: RequestInit): Promise { - const response = await this.rosettaNetworkListRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves the version information and allowed network-specific types for a NetworkIdentifier. Any NetworkIdentifier returned by /network/list should be accessible here. Because options are retrievable in the context of a NetworkIdentifier, it is possible to define unique options for each network. - * Get Network Options - */ - async rosettaNetworkOptionsRaw(requestParameters: RosettaNetworkOptionsRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaOptionsRequest === null || requestParameters.rosettaOptionsRequest === undefined) { - throw new runtime.RequiredError('rosettaOptionsRequest','Required parameter requestParameters.rosettaOptionsRequest was null or undefined when calling rosettaNetworkOptions.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/network/options`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaOptionsRequestToJSON(requestParameters.rosettaOptionsRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaNetworkOptionsResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the version information and allowed network-specific types for a NetworkIdentifier. Any NetworkIdentifier returned by /network/list should be accessible here. Because options are retrievable in the context of a NetworkIdentifier, it is possible to define unique options for each network. - * Get Network Options - */ - async rosettaNetworkOptions(requestParameters: RosettaNetworkOptionsRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaNetworkOptionsRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the current status of the network requested. Any NetworkIdentifier returned by /network/list should be accessible here. - * Get Network Status - */ - async rosettaNetworkStatusRaw(requestParameters: RosettaNetworkStatusRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.rosettaStatusRequest === null || requestParameters.rosettaStatusRequest === undefined) { - throw new runtime.RequiredError('rosettaStatusRequest','Required parameter requestParameters.rosettaStatusRequest was null or undefined when calling rosettaNetworkStatus.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/rosetta/v1/network/status`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: RosettaStatusRequestToJSON(requestParameters.rosettaStatusRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => RosettaNetworkStatusResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the current status of the network requested. Any NetworkIdentifier returned by /network/list should be accessible here. - * Get Network Status - */ - async rosettaNetworkStatus(requestParameters: RosettaNetworkStatusRequest, initOverrides?: RequestInit): Promise { - const response = await this.rosettaNetworkStatusRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/SearchApi.ts b/client/src/generated/apis/SearchApi.ts deleted file mode 100644 index 21fc1f9fd..000000000 --- a/client/src/generated/apis/SearchApi.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; - -export interface SearchByIdRequest { - id: string; - includeMetadata?: boolean; -} - -/** - * SearchApi - interface - * - * @export - * @interface SearchApiInterface - */ -export interface SearchApiInterface { - /** - * Search blocks, transactions, contracts, or accounts by hash/ID - * @summary Search - * @param {string} id The hex hash string for a block or transaction, account address, or contract address - * @param {boolean} [includeMetadata] This includes the detailed data for purticular hash in the response - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SearchApiInterface - */ - searchByIdRaw(requestParameters: SearchByIdRequest, initOverrides?: RequestInit): Promise>; - - /** - * Search blocks, transactions, contracts, or accounts by hash/ID - * Search - */ - searchById(requestParameters: SearchByIdRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class SearchApi extends runtime.BaseAPI implements SearchApiInterface { - - /** - * Search blocks, transactions, contracts, or accounts by hash/ID - * Search - */ - async searchByIdRaw(requestParameters: SearchByIdRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.id === null || requestParameters.id === undefined) { - throw new runtime.RequiredError('id','Required parameter requestParameters.id was null or undefined when calling searchById.'); - } - - const queryParameters: any = {}; - - if (requestParameters.includeMetadata !== undefined) { - queryParameters['include_metadata'] = requestParameters.includeMetadata; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/search/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters.id))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Search blocks, transactions, contracts, or accounts by hash/ID - * Search - */ - async searchById(requestParameters: SearchByIdRequest, initOverrides?: RequestInit): Promise { - const response = await this.searchByIdRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/SmartContractsApi.ts b/client/src/generated/apis/SmartContractsApi.ts deleted file mode 100644 index d23e4daab..000000000 --- a/client/src/generated/apis/SmartContractsApi.ts +++ /dev/null @@ -1,549 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - ContractInterfaceResponse, - ContractInterfaceResponseFromJSON, - ContractInterfaceResponseToJSON, - ContractListResponse, - ContractListResponseFromJSON, - ContractListResponseToJSON, - ContractSourceResponse, - ContractSourceResponseFromJSON, - ContractSourceResponseToJSON, - MapEntryResponse, - MapEntryResponseFromJSON, - MapEntryResponseToJSON, - ReadOnlyFunctionArgs, - ReadOnlyFunctionArgsFromJSON, - ReadOnlyFunctionArgsToJSON, - ReadOnlyFunctionSuccessResponse, - ReadOnlyFunctionSuccessResponseFromJSON, - ReadOnlyFunctionSuccessResponseToJSON, - SmartContract, - SmartContractFromJSON, - SmartContractToJSON, -} from '../models'; - -export interface CallReadOnlyFunctionRequest { - contractAddress: string; - contractName: string; - functionName: string; - readOnlyFunctionArgs: ReadOnlyFunctionArgs; - tip?: string; -} - -export interface GetContractByIdRequest { - contractId: string; - unanchored?: boolean; -} - -export interface GetContractDataMapEntryRequest { - contractAddress: string; - contractName: string; - mapName: string; - key: string; - proof?: number; - tip?: string; -} - -export interface GetContractEventsByIdRequest { - contractId: string; - limit?: number; - offset?: number; - unanchored?: boolean; -} - -export interface GetContractInterfaceRequest { - contractAddress: string; - contractName: string; - tip?: string; -} - -export interface GetContractSourceRequest { - contractAddress: string; - contractName: string; - proof?: number; - tip?: string; -} - -export interface GetContractsByTraitRequest { - traitAbi: string; - limit?: number; - offset?: number; -} - -/** - * SmartContractsApi - interface - * - * @export - * @interface SmartContractsApiInterface - */ -export interface SmartContractsApiInterface { - /** - * Call a read-only public function on a given smart contract. The smart contract and function are specified using the URL path. The arguments and the simulated tx-sender are supplied via the POST body in the following JSON format: - * @summary Call read-only function - * @param {string} contractAddress Stacks address - * @param {string} contractName Contract name - * @param {string} functionName Function name - * @param {ReadOnlyFunctionArgs} readOnlyFunctionArgs - * @param {string} [tip] The Stacks chain tip to query from - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SmartContractsApiInterface - */ - callReadOnlyFunctionRaw(requestParameters: CallReadOnlyFunctionRequest, initOverrides?: RequestInit): Promise>; - - /** - * Call a read-only public function on a given smart contract. The smart contract and function are specified using the URL path. The arguments and the simulated tx-sender are supplied via the POST body in the following JSON format: - * Call read-only function - */ - callReadOnlyFunction(requestParameters: CallReadOnlyFunctionRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves details of a contract with a given `contract_id` - * @summary Get contract info - * @param {string} contractId Contract identifier formatted as `<contract_address>.<contract_name>` - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SmartContractsApiInterface - */ - getContractByIdRaw(requestParameters: GetContractByIdRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves details of a contract with a given `contract_id` - * Get contract info - */ - getContractById(requestParameters: GetContractByIdRequest, initOverrides?: RequestInit): Promise; - - /** - * Attempt to fetch data from a contract data map. The contract is identified with Stacks Address `contract_address` and Contract Name `contract_address` in the URL path. The map is identified with [Map Name]. The key to lookup in the map is supplied via the POST body. This should be supplied as the hex string serialization of the key (which should be a Clarity value). Note, this is a JSON string atom. In the response, `data` is the hex serialization of the map response. Note that map responses are Clarity option types, for non-existent values, this is a serialized none, and for all other responses, it is a serialized (some ...) object. - * @summary Get specific data-map inside a contract - * @param {string} contractAddress Stacks address - * @param {string} contractName Contract name - * @param {string} mapName Map name - * @param {string} key Hex string serialization of the lookup key (which should be a Clarity value) - * @param {number} [proof] Returns object without the proof field when set to 0 - * @param {string} [tip] The Stacks chain tip to query from - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SmartContractsApiInterface - */ - getContractDataMapEntryRaw(requestParameters: GetContractDataMapEntryRequest, initOverrides?: RequestInit): Promise>; - - /** - * Attempt to fetch data from a contract data map. The contract is identified with Stacks Address `contract_address` and Contract Name `contract_address` in the URL path. The map is identified with [Map Name]. The key to lookup in the map is supplied via the POST body. This should be supplied as the hex string serialization of the key (which should be a Clarity value). Note, this is a JSON string atom. In the response, `data` is the hex serialization of the map response. Note that map responses are Clarity option types, for non-existent values, this is a serialized none, and for all other responses, it is a serialized (some ...) object. - * Get specific data-map inside a contract - */ - getContractDataMapEntry(requestParameters: GetContractDataMapEntryRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of events that have been triggered by a given `contract_id` - * @summary Get contract events - * @param {string} contractId Contract identifier formatted as `<contract_address>.<contract_name>` - * @param {number} [limit] max number of contract events to fetch - * @param {number} [offset] index of first contract event to fetch - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SmartContractsApiInterface - */ - getContractEventsByIdRaw(requestParameters: GetContractEventsByIdRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of events that have been triggered by a given `contract_id` - * Get contract events - */ - getContractEventsById(requestParameters: GetContractEventsByIdRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a contract interface with a given `contract_address` and `contract name` - * @summary Get contract interface - * @param {string} contractAddress Stacks address - * @param {string} contractName Contract name - * @param {string} [tip] The Stacks chain tip to query from - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SmartContractsApiInterface - */ - getContractInterfaceRaw(requestParameters: GetContractInterfaceRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a contract interface with a given `contract_address` and `contract name` - * Get contract interface - */ - getContractInterface(requestParameters: GetContractInterfaceRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the Clarity source code of a given contract, along with the block height it was published in, and the MARF proof for the data - * @summary Get contract source - * @param {string} contractAddress Stacks address - * @param {string} contractName Contract name - * @param {number} [proof] Returns object without the proof field if set to 0 - * @param {string} [tip] The Stacks chain tip to query from - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SmartContractsApiInterface - */ - getContractSourceRaw(requestParameters: GetContractSourceRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the Clarity source code of a given contract, along with the block height it was published in, and the MARF proof for the data - * Get contract source - */ - getContractSource(requestParameters: GetContractSourceRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of contracts based on the following traits listed in JSON format - functions, variables, maps, fungible tokens and non-fungible tokens - * @summary Get contracts by trait - * @param {string} traitAbi JSON abi of the trait. - * @param {number} [limit] max number of contracts fetch - * @param {number} [offset] index of first contract event to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SmartContractsApiInterface - */ - getContractsByTraitRaw(requestParameters: GetContractsByTraitRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of contracts based on the following traits listed in JSON format - functions, variables, maps, fungible tokens and non-fungible tokens - * Get contracts by trait - */ - getContractsByTrait(requestParameters: GetContractsByTraitRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class SmartContractsApi extends runtime.BaseAPI implements SmartContractsApiInterface { - - /** - * Call a read-only public function on a given smart contract. The smart contract and function are specified using the URL path. The arguments and the simulated tx-sender are supplied via the POST body in the following JSON format: - * Call read-only function - */ - async callReadOnlyFunctionRaw(requestParameters: CallReadOnlyFunctionRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.contractAddress === null || requestParameters.contractAddress === undefined) { - throw new runtime.RequiredError('contractAddress','Required parameter requestParameters.contractAddress was null or undefined when calling callReadOnlyFunction.'); - } - - if (requestParameters.contractName === null || requestParameters.contractName === undefined) { - throw new runtime.RequiredError('contractName','Required parameter requestParameters.contractName was null or undefined when calling callReadOnlyFunction.'); - } - - if (requestParameters.functionName === null || requestParameters.functionName === undefined) { - throw new runtime.RequiredError('functionName','Required parameter requestParameters.functionName was null or undefined when calling callReadOnlyFunction.'); - } - - if (requestParameters.readOnlyFunctionArgs === null || requestParameters.readOnlyFunctionArgs === undefined) { - throw new runtime.RequiredError('readOnlyFunctionArgs','Required parameter requestParameters.readOnlyFunctionArgs was null or undefined when calling callReadOnlyFunction.'); - } - - const queryParameters: any = {}; - - if (requestParameters.tip !== undefined) { - queryParameters['tip'] = requestParameters.tip; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/v2/contracts/call-read/{contract_address}/{contract_name}/{function_name}`.replace(`{${"contract_address"}}`, encodeURIComponent(String(requestParameters.contractAddress))).replace(`{${"contract_name"}}`, encodeURIComponent(String(requestParameters.contractName))).replace(`{${"function_name"}}`, encodeURIComponent(String(requestParameters.functionName))), - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: ReadOnlyFunctionArgsToJSON(requestParameters.readOnlyFunctionArgs), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => ReadOnlyFunctionSuccessResponseFromJSON(jsonValue)); - } - - /** - * Call a read-only public function on a given smart contract. The smart contract and function are specified using the URL path. The arguments and the simulated tx-sender are supplied via the POST body in the following JSON format: - * Call read-only function - */ - async callReadOnlyFunction(requestParameters: CallReadOnlyFunctionRequest, initOverrides?: RequestInit): Promise { - const response = await this.callReadOnlyFunctionRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves details of a contract with a given `contract_id` - * Get contract info - */ - async getContractByIdRaw(requestParameters: GetContractByIdRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.contractId === null || requestParameters.contractId === undefined) { - throw new runtime.RequiredError('contractId','Required parameter requestParameters.contractId was null or undefined when calling getContractById.'); - } - - const queryParameters: any = {}; - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/contract/{contract_id}`.replace(`{${"contract_id"}}`, encodeURIComponent(String(requestParameters.contractId))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => SmartContractFromJSON(jsonValue)); - } - - /** - * Retrieves details of a contract with a given `contract_id` - * Get contract info - */ - async getContractById(requestParameters: GetContractByIdRequest, initOverrides?: RequestInit): Promise { - const response = await this.getContractByIdRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Attempt to fetch data from a contract data map. The contract is identified with Stacks Address `contract_address` and Contract Name `contract_address` in the URL path. The map is identified with [Map Name]. The key to lookup in the map is supplied via the POST body. This should be supplied as the hex string serialization of the key (which should be a Clarity value). Note, this is a JSON string atom. In the response, `data` is the hex serialization of the map response. Note that map responses are Clarity option types, for non-existent values, this is a serialized none, and for all other responses, it is a serialized (some ...) object. - * Get specific data-map inside a contract - */ - async getContractDataMapEntryRaw(requestParameters: GetContractDataMapEntryRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.contractAddress === null || requestParameters.contractAddress === undefined) { - throw new runtime.RequiredError('contractAddress','Required parameter requestParameters.contractAddress was null or undefined when calling getContractDataMapEntry.'); - } - - if (requestParameters.contractName === null || requestParameters.contractName === undefined) { - throw new runtime.RequiredError('contractName','Required parameter requestParameters.contractName was null or undefined when calling getContractDataMapEntry.'); - } - - if (requestParameters.mapName === null || requestParameters.mapName === undefined) { - throw new runtime.RequiredError('mapName','Required parameter requestParameters.mapName was null or undefined when calling getContractDataMapEntry.'); - } - - if (requestParameters.key === null || requestParameters.key === undefined) { - throw new runtime.RequiredError('key','Required parameter requestParameters.key was null or undefined when calling getContractDataMapEntry.'); - } - - const queryParameters: any = {}; - - if (requestParameters.proof !== undefined) { - queryParameters['proof'] = requestParameters.proof; - } - - if (requestParameters.tip !== undefined) { - queryParameters['tip'] = requestParameters.tip; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/v2/map_entry/{contract_address}/{contract_name}/{map_name}`.replace(`{${"contract_address"}}`, encodeURIComponent(String(requestParameters.contractAddress))).replace(`{${"contract_name"}}`, encodeURIComponent(String(requestParameters.contractName))).replace(`{${"map_name"}}`, encodeURIComponent(String(requestParameters.mapName))), - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: requestParameters.key as any, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => MapEntryResponseFromJSON(jsonValue)); - } - - /** - * Attempt to fetch data from a contract data map. The contract is identified with Stacks Address `contract_address` and Contract Name `contract_address` in the URL path. The map is identified with [Map Name]. The key to lookup in the map is supplied via the POST body. This should be supplied as the hex string serialization of the key (which should be a Clarity value). Note, this is a JSON string atom. In the response, `data` is the hex serialization of the map response. Note that map responses are Clarity option types, for non-existent values, this is a serialized none, and for all other responses, it is a serialized (some ...) object. - * Get specific data-map inside a contract - */ - async getContractDataMapEntry(requestParameters: GetContractDataMapEntryRequest, initOverrides?: RequestInit): Promise { - const response = await this.getContractDataMapEntryRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of events that have been triggered by a given `contract_id` - * Get contract events - */ - async getContractEventsByIdRaw(requestParameters: GetContractEventsByIdRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.contractId === null || requestParameters.contractId === undefined) { - throw new runtime.RequiredError('contractId','Required parameter requestParameters.contractId was null or undefined when calling getContractEventsById.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/contract/{contract_id}/events`.replace(`{${"contract_id"}}`, encodeURIComponent(String(requestParameters.contractId))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves a list of events that have been triggered by a given `contract_id` - * Get contract events - */ - async getContractEventsById(requestParameters: GetContractEventsByIdRequest, initOverrides?: RequestInit): Promise { - const response = await this.getContractEventsByIdRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a contract interface with a given `contract_address` and `contract name` - * Get contract interface - */ - async getContractInterfaceRaw(requestParameters: GetContractInterfaceRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.contractAddress === null || requestParameters.contractAddress === undefined) { - throw new runtime.RequiredError('contractAddress','Required parameter requestParameters.contractAddress was null or undefined when calling getContractInterface.'); - } - - if (requestParameters.contractName === null || requestParameters.contractName === undefined) { - throw new runtime.RequiredError('contractName','Required parameter requestParameters.contractName was null or undefined when calling getContractInterface.'); - } - - const queryParameters: any = {}; - - if (requestParameters.tip !== undefined) { - queryParameters['tip'] = requestParameters.tip; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v2/contracts/interface/{contract_address}/{contract_name}`.replace(`{${"contract_address"}}`, encodeURIComponent(String(requestParameters.contractAddress))).replace(`{${"contract_name"}}`, encodeURIComponent(String(requestParameters.contractName))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => ContractInterfaceResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a contract interface with a given `contract_address` and `contract name` - * Get contract interface - */ - async getContractInterface(requestParameters: GetContractInterfaceRequest, initOverrides?: RequestInit): Promise { - const response = await this.getContractInterfaceRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the Clarity source code of a given contract, along with the block height it was published in, and the MARF proof for the data - * Get contract source - */ - async getContractSourceRaw(requestParameters: GetContractSourceRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.contractAddress === null || requestParameters.contractAddress === undefined) { - throw new runtime.RequiredError('contractAddress','Required parameter requestParameters.contractAddress was null or undefined when calling getContractSource.'); - } - - if (requestParameters.contractName === null || requestParameters.contractName === undefined) { - throw new runtime.RequiredError('contractName','Required parameter requestParameters.contractName was null or undefined when calling getContractSource.'); - } - - const queryParameters: any = {}; - - if (requestParameters.proof !== undefined) { - queryParameters['proof'] = requestParameters.proof; - } - - if (requestParameters.tip !== undefined) { - queryParameters['tip'] = requestParameters.tip; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/v2/contracts/source/{contract_address}/{contract_name}`.replace(`{${"contract_address"}}`, encodeURIComponent(String(requestParameters.contractAddress))).replace(`{${"contract_name"}}`, encodeURIComponent(String(requestParameters.contractName))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => ContractSourceResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the Clarity source code of a given contract, along with the block height it was published in, and the MARF proof for the data - * Get contract source - */ - async getContractSource(requestParameters: GetContractSourceRequest, initOverrides?: RequestInit): Promise { - const response = await this.getContractSourceRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of contracts based on the following traits listed in JSON format - functions, variables, maps, fungible tokens and non-fungible tokens - * Get contracts by trait - */ - async getContractsByTraitRaw(requestParameters: GetContractsByTraitRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.traitAbi === null || requestParameters.traitAbi === undefined) { - throw new runtime.RequiredError('traitAbi','Required parameter requestParameters.traitAbi was null or undefined when calling getContractsByTrait.'); - } - - const queryParameters: any = {}; - - if (requestParameters.traitAbi !== undefined) { - queryParameters['trait_abi'] = requestParameters.traitAbi; - } - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/contract/by_trait`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => ContractListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of contracts based on the following traits listed in JSON format - functions, variables, maps, fungible tokens and non-fungible tokens - * Get contracts by trait - */ - async getContractsByTrait(requestParameters: GetContractsByTraitRequest, initOverrides?: RequestInit): Promise { - const response = await this.getContractsByTraitRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/StackingApi.ts b/client/src/generated/apis/StackingApi.ts deleted file mode 100644 index e48599ad0..000000000 --- a/client/src/generated/apis/StackingApi.ts +++ /dev/null @@ -1,113 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - PoolDelegationsResponse, - PoolDelegationsResponseFromJSON, - PoolDelegationsResponseToJSON, -} from '../models'; - -export interface GetPoolDelegationsRequest { - poolPrincipal: string; - afterBlock?: number; - unanchored?: boolean; - limit?: number; - offset?: number; -} - -/** - * StackingApi - interface - * - * @export - * @interface StackingApiInterface - */ -export interface StackingApiInterface { - /** - * Retrieves the list of stacking pool members for a given delegator principal. - * @summary Stacking pool members - * @param {string} poolPrincipal Address principal of the stacking pool delegator - * @param {number} [afterBlock] If specified, only delegation events after the given block will be included - * @param {boolean} [unanchored] whether or not to include Stackers from unconfirmed transactions - * @param {number} [limit] number of items to return - * @param {number} [offset] number of items to skip - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof StackingApiInterface - */ - getPoolDelegationsRaw(requestParameters: GetPoolDelegationsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the list of stacking pool members for a given delegator principal. - * Stacking pool members - */ - getPoolDelegations(requestParameters: GetPoolDelegationsRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class StackingApi extends runtime.BaseAPI implements StackingApiInterface { - - /** - * Retrieves the list of stacking pool members for a given delegator principal. - * Stacking pool members - */ - async getPoolDelegationsRaw(requestParameters: GetPoolDelegationsRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.poolPrincipal === null || requestParameters.poolPrincipal === undefined) { - throw new runtime.RequiredError('poolPrincipal','Required parameter requestParameters.poolPrincipal was null or undefined when calling getPoolDelegations.'); - } - - const queryParameters: any = {}; - - if (requestParameters.afterBlock !== undefined) { - queryParameters['after_block'] = requestParameters.afterBlock; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/beta/stacking/{pool_principal}/delegations`.replace(`{${"pool_principal"}}`, encodeURIComponent(String(requestParameters.poolPrincipal))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => PoolDelegationsResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the list of stacking pool members for a given delegator principal. - * Stacking pool members - */ - async getPoolDelegations(requestParameters: GetPoolDelegationsRequest, initOverrides?: RequestInit): Promise { - const response = await this.getPoolDelegationsRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/StackingRewardsApi.ts b/client/src/generated/apis/StackingRewardsApi.ts deleted file mode 100644 index b1facee70..000000000 --- a/client/src/generated/apis/StackingRewardsApi.ts +++ /dev/null @@ -1,339 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - BurnchainRewardListResponse, - BurnchainRewardListResponseFromJSON, - BurnchainRewardListResponseToJSON, - BurnchainRewardSlotHolderListResponse, - BurnchainRewardSlotHolderListResponseFromJSON, - BurnchainRewardSlotHolderListResponseToJSON, - BurnchainRewardsTotal, - BurnchainRewardsTotalFromJSON, - BurnchainRewardsTotalToJSON, -} from '../models'; - -export interface GetBurnchainRewardListRequest { - limit?: number; - offset?: number; -} - -export interface GetBurnchainRewardListByAddressRequest { - address: string; - limit?: number; - offset?: number; -} - -export interface GetBurnchainRewardSlotHoldersRequest { - limit?: number; - offset?: number; -} - -export interface GetBurnchainRewardSlotHoldersByAddressRequest { - address: string; - limit?: number; - offset?: number; -} - -export interface GetBurnchainRewardsTotalByAddressRequest { - address: string; -} - -/** - * StackingRewardsApi - interface - * - * @export - * @interface StackingRewardsApiInterface - */ -export interface StackingRewardsApiInterface { - /** - * Retrieves a list of recent burnchain (e.g. Bitcoin) reward recipients with the associated amounts and block info - * @summary Get recent burnchain reward recipients - * @param {number} [limit] max number of rewards to fetch - * @param {number} [offset] index of first rewards to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof StackingRewardsApiInterface - */ - getBurnchainRewardListRaw(requestParameters: GetBurnchainRewardListRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of recent burnchain (e.g. Bitcoin) reward recipients with the associated amounts and block info - * Get recent burnchain reward recipients - */ - getBurnchainRewardList(requestParameters: GetBurnchainRewardListRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the given recipient with the associated amounts and block info - * @summary Get recent burnchain reward for the given recipient - * @param {string} address Reward recipient address. Should either be in the native burnchain\'s format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format - * @param {number} [limit] max number of rewards to fetch - * @param {number} [offset] index of first rewards to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof StackingRewardsApiInterface - */ - getBurnchainRewardListByAddressRaw(requestParameters: GetBurnchainRewardListByAddressRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the given recipient with the associated amounts and block info - * Get recent burnchain reward for the given recipient - */ - getBurnchainRewardListByAddress(requestParameters: GetBurnchainRewardListByAddressRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments. - * @summary Get recent reward slot holders - * @param {number} [limit] max number of items to fetch - * @param {number} [offset] index of the first items to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof StackingRewardsApiInterface - */ - getBurnchainRewardSlotHoldersRaw(requestParameters: GetBurnchainRewardSlotHoldersRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments. - * Get recent reward slot holders - */ - getBurnchainRewardSlotHolders(requestParameters: GetBurnchainRewardSlotHoldersRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments for a given reward slot holder recipient address. - * @summary Get recent reward slot holder entries for the given address - * @param {string} address Reward slot holder recipient address. Should either be in the native burnchain\'s format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format - * @param {number} [limit] max number of items to fetch - * @param {number} [offset] index of the first items to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof StackingRewardsApiInterface - */ - getBurnchainRewardSlotHoldersByAddressRaw(requestParameters: GetBurnchainRewardSlotHoldersByAddressRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments for a given reward slot holder recipient address. - * Get recent reward slot holder entries for the given address - */ - getBurnchainRewardSlotHoldersByAddress(requestParameters: GetBurnchainRewardSlotHoldersByAddressRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the total burnchain (e.g. Bitcoin) rewards for a given recipient `address` - * @summary Get total burnchain rewards for the given recipient - * @param {string} address Reward recipient address. Should either be in the native burnchain\'s format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof StackingRewardsApiInterface - */ - getBurnchainRewardsTotalByAddressRaw(requestParameters: GetBurnchainRewardsTotalByAddressRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the total burnchain (e.g. Bitcoin) rewards for a given recipient `address` - * Get total burnchain rewards for the given recipient - */ - getBurnchainRewardsTotalByAddress(requestParameters: GetBurnchainRewardsTotalByAddressRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class StackingRewardsApi extends runtime.BaseAPI implements StackingRewardsApiInterface { - - /** - * Retrieves a list of recent burnchain (e.g. Bitcoin) reward recipients with the associated amounts and block info - * Get recent burnchain reward recipients - */ - async getBurnchainRewardListRaw(requestParameters: GetBurnchainRewardListRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/burnchain/rewards`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BurnchainRewardListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of recent burnchain (e.g. Bitcoin) reward recipients with the associated amounts and block info - * Get recent burnchain reward recipients - */ - async getBurnchainRewardList(requestParameters: GetBurnchainRewardListRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBurnchainRewardListRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the given recipient with the associated amounts and block info - * Get recent burnchain reward for the given recipient - */ - async getBurnchainRewardListByAddressRaw(requestParameters: GetBurnchainRewardListByAddressRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.address === null || requestParameters.address === undefined) { - throw new runtime.RequiredError('address','Required parameter requestParameters.address was null or undefined when calling getBurnchainRewardListByAddress.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/burnchain/rewards/{address}`.replace(`{${"address"}}`, encodeURIComponent(String(requestParameters.address))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BurnchainRewardListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the given recipient with the associated amounts and block info - * Get recent burnchain reward for the given recipient - */ - async getBurnchainRewardListByAddress(requestParameters: GetBurnchainRewardListByAddressRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBurnchainRewardListByAddressRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments. - * Get recent reward slot holders - */ - async getBurnchainRewardSlotHoldersRaw(requestParameters: GetBurnchainRewardSlotHoldersRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/burnchain/reward_slot_holders`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BurnchainRewardSlotHolderListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments. - * Get recent reward slot holders - */ - async getBurnchainRewardSlotHolders(requestParameters: GetBurnchainRewardSlotHoldersRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBurnchainRewardSlotHoldersRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments for a given reward slot holder recipient address. - * Get recent reward slot holder entries for the given address - */ - async getBurnchainRewardSlotHoldersByAddressRaw(requestParameters: GetBurnchainRewardSlotHoldersByAddressRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.address === null || requestParameters.address === undefined) { - throw new runtime.RequiredError('address','Required parameter requestParameters.address was null or undefined when calling getBurnchainRewardSlotHoldersByAddress.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/burnchain/reward_slot_holders/{address}`.replace(`{${"address"}}`, encodeURIComponent(String(requestParameters.address))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BurnchainRewardSlotHolderListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments for a given reward slot holder recipient address. - * Get recent reward slot holder entries for the given address - */ - async getBurnchainRewardSlotHoldersByAddress(requestParameters: GetBurnchainRewardSlotHoldersByAddressRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBurnchainRewardSlotHoldersByAddressRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the total burnchain (e.g. Bitcoin) rewards for a given recipient `address` - * Get total burnchain rewards for the given recipient - */ - async getBurnchainRewardsTotalByAddressRaw(requestParameters: GetBurnchainRewardsTotalByAddressRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.address === null || requestParameters.address === undefined) { - throw new runtime.RequiredError('address','Required parameter requestParameters.address was null or undefined when calling getBurnchainRewardsTotalByAddress.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/burnchain/rewards/{address}/total`.replace(`{${"address"}}`, encodeURIComponent(String(requestParameters.address))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => BurnchainRewardsTotalFromJSON(jsonValue)); - } - - /** - * Retrieves the total burnchain (e.g. Bitcoin) rewards for a given recipient `address` - * Get total burnchain rewards for the given recipient - */ - async getBurnchainRewardsTotalByAddress(requestParameters: GetBurnchainRewardsTotalByAddressRequest, initOverrides?: RequestInit): Promise { - const response = await this.getBurnchainRewardsTotalByAddressRaw(requestParameters, initOverrides); - return await response.value(); - } - -} diff --git a/client/src/generated/apis/TransactionsApi.ts b/client/src/generated/apis/TransactionsApi.ts deleted file mode 100644 index 63b6fe989..000000000 --- a/client/src/generated/apis/TransactionsApi.ts +++ /dev/null @@ -1,855 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import * as runtime from '../runtime'; -import { - GetRawTransactionResult, - GetRawTransactionResultFromJSON, - GetRawTransactionResultToJSON, - MempoolTransactionListResponse, - MempoolTransactionListResponseFromJSON, - MempoolTransactionListResponseToJSON, - MempoolTransactionStatsResponse, - MempoolTransactionStatsResponseFromJSON, - MempoolTransactionStatsResponseToJSON, - PostCoreNodeTransactionsError, - PostCoreNodeTransactionsErrorFromJSON, - PostCoreNodeTransactionsErrorToJSON, - TransactionEventsResponse, - TransactionEventsResponseFromJSON, - TransactionEventsResponseToJSON, - TransactionResults, - TransactionResultsFromJSON, - TransactionResultsToJSON, -} from '../models'; - -export interface GetAddressMempoolTransactionsRequest { - address: string; - limit?: number; - offset?: number; - unanchored?: boolean; -} - -export interface GetDroppedMempoolTransactionListRequest { - limit?: number; - offset?: number; -} - -export interface GetFilteredEventsRequest { - txId?: string; - address?: string; - limit?: number; - offset?: number; - type?: Array; -} - -export interface GetMempoolTransactionListRequest { - senderAddress?: string; - recipientAddress?: string; - address?: string; - limit?: number; - offset?: number; - unanchored?: boolean; -} - -export interface GetRawTransactionByIdRequest { - txId: string; -} - -export interface GetTransactionByIdRequest { - txId: string; - eventOffset?: number; - eventLimit?: number; - unanchored?: boolean; -} - -export interface GetTransactionListRequest { - limit?: number; - offset?: number; - type?: Array; - unanchored?: boolean; -} - -export interface GetTransactionsByBlockHashRequest { - blockHash: string; - limit?: number; - offset?: number; -} - -export interface GetTransactionsByBlockHeightRequest { - height: number; - limit?: number; - offset?: number; - unanchored?: boolean; -} - -export interface GetTxListDetailsRequest { - txId: Array; - eventOffset?: number; - eventLimit?: number; - unanchored?: boolean; -} - -export interface PostCoreNodeTransactionsRequest { - body?: Blob; -} - -/** - * TransactionsApi - interface - * - * @export - * @interface TransactionsApiInterface - */ -export interface TransactionsApiInterface { - /** - * Retrieves all transactions for a given address that are currently in mempool - * @summary Transactions for address - * @param {string} address Transactions for the address - * @param {number} [limit] max number of transactions to fetch - * @param {number} [offset] index of first transaction to fetch - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getAddressMempoolTransactionsRaw(requestParameters: GetAddressMempoolTransactionsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves all transactions for a given address that are currently in mempool - * Transactions for address - */ - getAddressMempoolTransactions(requestParameters: GetAddressMempoolTransactionsRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves all recently-broadcast transactions that have been dropped from the mempool. Transactions are dropped from the mempool if: * they were stale and awaiting garbage collection or, * were expensive, or * were replaced with a new fee - * @summary Get dropped mempool transactions - * @param {number} [limit] max number of mempool transactions to fetch - * @param {number} [offset] index of first mempool transaction to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getDroppedMempoolTransactionListRaw(requestParameters: GetDroppedMempoolTransactionListRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves all recently-broadcast transactions that have been dropped from the mempool. Transactions are dropped from the mempool if: * they were stale and awaiting garbage collection or, * were expensive, or * were replaced with a new fee - * Get dropped mempool transactions - */ - getDroppedMempoolTransactionList(requestParameters: GetDroppedMempoolTransactionListRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves the list of events filtered by principal (STX address or Smart Contract ID), transaction id or event types. The list of event types is (\'smart_contract_log\', \'stx_lock\', \'stx_asset\', \'fungible_token_asset\', \'non_fungible_token_asset\'). - * @summary Transaction Events - * @param {string} [txId] Hash of transaction - * @param {string} [address] Stacks address or a Contract identifier - * @param {number} [limit] number of items to return - * @param {number} [offset] number of items to skip - * @param {Array<'smart_contract_log' | 'stx_lock' | 'stx_asset' | 'fungible_token_asset' | 'non_fungible_token_asset'>} [type] Filter the events on event type - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getFilteredEventsRaw(requestParameters: GetFilteredEventsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves the list of events filtered by principal (STX address or Smart Contract ID), transaction id or event types. The list of event types is (\'smart_contract_log\', \'stx_lock\', \'stx_asset\', \'fungible_token_asset\', \'non_fungible_token_asset\'). - * Transaction Events - */ - getFilteredEvents(requestParameters: GetFilteredEventsRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves all transactions that have been recently broadcast to the mempool. These are pending transactions awaiting confirmation. If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * @summary Get mempool transactions - * @param {string} [senderAddress] Filter to only return transactions with this sender address. - * @param {string} [recipientAddress] Filter to only return transactions with this recipient address (only applicable for STX transfer tx types). - * @param {string} [address] Filter to only return transactions with this address as the sender or recipient (recipient only applicable for STX transfer tx types). - * @param {number} [limit] max number of mempool transactions to fetch - * @param {number} [offset] index of first mempool transaction to fetch - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getMempoolTransactionListRaw(requestParameters: GetMempoolTransactionListRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves all transactions that have been recently broadcast to the mempool. These are pending transactions awaiting confirmation. If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get mempool transactions - */ - getMempoolTransactionList(requestParameters: GetMempoolTransactionListRequest, initOverrides?: RequestInit): Promise; - - /** - * Queries for transactions counts, age (by block height), fees (simple average), and size. All results broken down by transaction type and percentiles (p25, p50, p75, p95). - * @summary Get statistics for mempool transactions - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getMempoolTransactionStatsRaw(initOverrides?: RequestInit): Promise>; - - /** - * Queries for transactions counts, age (by block height), fees (simple average), and size. All results broken down by transaction type and percentiles (p25, p50, p75, p95). - * Get statistics for mempool transactions - */ - getMempoolTransactionStats(initOverrides?: RequestInit): Promise; - - /** - * Retrieves a hex encoded serialized transaction for a given ID - * @summary Get Raw Transaction - * @param {string} txId Hash of transaction - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getRawTransactionByIdRaw(requestParameters: GetRawTransactionByIdRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a hex encoded serialized transaction for a given ID - * Get Raw Transaction - */ - getRawTransactionById(requestParameters: GetRawTransactionByIdRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves transaction details for a given transaction ID `import type { Transaction } from \'@stacks/stacks-blockchain-api-types\';` - * @summary Get transaction - * @param {string} txId Hash of transaction - * @param {number} [eventOffset] The number of events to skip - * @param {number} [eventLimit] The numbers of events to return - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getTransactionByIdRaw(requestParameters: GetTransactionByIdRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves transaction details for a given transaction ID `import type { Transaction } from \'@stacks/stacks-blockchain-api-types\';` - * Get transaction - */ - getTransactionById(requestParameters: GetTransactionByIdRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves all recently mined transactions If using TypeScript, import typings for this response from our types package: `import type { TransactionResults } from \'@stacks/stacks-blockchain-api-types\';` - * @summary Get recent transactions - * @param {number} [limit] max number of transactions to fetch - * @param {number} [offset] index of first transaction to fetch - * @param {Array<'coinbase' | 'token_transfer' | 'smart_contract' | 'contract_call' | 'poison_microblock'>} [type] Filter by transaction type - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getTransactionListRaw(requestParameters: GetTransactionListRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves all recently mined transactions If using TypeScript, import typings for this response from our types package: `import type { TransactionResults } from \'@stacks/stacks-blockchain-api-types\';` - * Get recent transactions - */ - getTransactionList(requestParameters: GetTransactionListRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of all transactions within a block for a given block hash. - * @summary Transactions by block hash - * @param {string} blockHash Hash of block - * @param {number} [limit] max number of transactions to fetch - * @param {number} [offset] index of first transaction to fetch - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getTransactionsByBlockHashRaw(requestParameters: GetTransactionsByBlockHashRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of all transactions within a block for a given block hash. - * Transactions by block hash - */ - getTransactionsByBlockHash(requestParameters: GetTransactionsByBlockHashRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves all transactions within a block at a given height - * @summary Transactions by block height - * @param {number} height Height of block - * @param {number} [limit] max number of transactions to fetch - * @param {number} [offset] index of first transaction to fetch - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getTransactionsByBlockHeightRaw(requestParameters: GetTransactionsByBlockHeightRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves all transactions within a block at a given height - * Transactions by block height - */ - getTransactionsByBlockHeight(requestParameters: GetTransactionsByBlockHeightRequest, initOverrides?: RequestInit): Promise; - - /** - * Retrieves a list of transactions for a given list of transaction IDs If using TypeScript, import typings for this response from our types package: `import type { Transaction } from \'@stacks/stacks-blockchain-api-types\';` - * @summary Get list of details for transactions - * @param {Array} txId Array of transaction ids - * @param {number} [eventOffset] The number of events to skip - * @param {number} [eventLimit] The numbers of events to return - * @param {boolean} [unanchored] Include transaction data from unanchored (i.e. unconfirmed) microblocks - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - getTxListDetailsRaw(requestParameters: GetTxListDetailsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Retrieves a list of transactions for a given list of transaction IDs If using TypeScript, import typings for this response from our types package: `import type { Transaction } from \'@stacks/stacks-blockchain-api-types\';` - * Get list of details for transactions - */ - getTxListDetails(requestParameters: GetTxListDetailsRequest, initOverrides?: RequestInit): Promise<{ [key: string]: object; }>; - - /** - * Broadcasts raw transactions on the network. You can use the [@stacks/transactions](https://github.com/blockstack/stacks.js) project to generate a raw transaction payload. - * @summary Broadcast raw transaction - * @param {Blob} [body] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof TransactionsApiInterface - */ - postCoreNodeTransactionsRaw(requestParameters: PostCoreNodeTransactionsRequest, initOverrides?: RequestInit): Promise>; - - /** - * Broadcasts raw transactions on the network. You can use the [@stacks/transactions](https://github.com/blockstack/stacks.js) project to generate a raw transaction payload. - * Broadcast raw transaction - */ - postCoreNodeTransactions(requestParameters: PostCoreNodeTransactionsRequest, initOverrides?: RequestInit): Promise; - -} - -/** - * - */ -export class TransactionsApi extends runtime.BaseAPI implements TransactionsApiInterface { - - /** - * Retrieves all transactions for a given address that are currently in mempool - * Transactions for address - */ - async getAddressMempoolTransactionsRaw(requestParameters: GetAddressMempoolTransactionsRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.address === null || requestParameters.address === undefined) { - throw new runtime.RequiredError('address','Required parameter requestParameters.address was null or undefined when calling getAddressMempoolTransactions.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/address/{address}/mempool`.replace(`{${"address"}}`, encodeURIComponent(String(requestParameters.address))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => MempoolTransactionListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves all transactions for a given address that are currently in mempool - * Transactions for address - */ - async getAddressMempoolTransactions(requestParameters: GetAddressMempoolTransactionsRequest, initOverrides?: RequestInit): Promise { - const response = await this.getAddressMempoolTransactionsRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves all recently-broadcast transactions that have been dropped from the mempool. Transactions are dropped from the mempool if: * they were stale and awaiting garbage collection or, * were expensive, or * were replaced with a new fee - * Get dropped mempool transactions - */ - async getDroppedMempoolTransactionListRaw(requestParameters: GetDroppedMempoolTransactionListRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/mempool/dropped`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => MempoolTransactionListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves all recently-broadcast transactions that have been dropped from the mempool. Transactions are dropped from the mempool if: * they were stale and awaiting garbage collection or, * were expensive, or * were replaced with a new fee - * Get dropped mempool transactions - */ - async getDroppedMempoolTransactionList(requestParameters: GetDroppedMempoolTransactionListRequest, initOverrides?: RequestInit): Promise { - const response = await this.getDroppedMempoolTransactionListRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves the list of events filtered by principal (STX address or Smart Contract ID), transaction id or event types. The list of event types is (\'smart_contract_log\', \'stx_lock\', \'stx_asset\', \'fungible_token_asset\', \'non_fungible_token_asset\'). - * Transaction Events - */ - async getFilteredEventsRaw(requestParameters: GetFilteredEventsRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.txId !== undefined) { - queryParameters['tx_id'] = requestParameters.txId; - } - - if (requestParameters.address !== undefined) { - queryParameters['address'] = requestParameters.address; - } - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.type) { - queryParameters['type'] = requestParameters.type; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/events`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => TransactionEventsResponseFromJSON(jsonValue)); - } - - /** - * Retrieves the list of events filtered by principal (STX address or Smart Contract ID), transaction id or event types. The list of event types is (\'smart_contract_log\', \'stx_lock\', \'stx_asset\', \'fungible_token_asset\', \'non_fungible_token_asset\'). - * Transaction Events - */ - async getFilteredEvents(requestParameters: GetFilteredEventsRequest, initOverrides?: RequestInit): Promise { - const response = await this.getFilteredEventsRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves all transactions that have been recently broadcast to the mempool. These are pending transactions awaiting confirmation. If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get mempool transactions - */ - async getMempoolTransactionListRaw(requestParameters: GetMempoolTransactionListRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.senderAddress !== undefined) { - queryParameters['sender_address'] = requestParameters.senderAddress; - } - - if (requestParameters.recipientAddress !== undefined) { - queryParameters['recipient_address'] = requestParameters.recipientAddress; - } - - if (requestParameters.address !== undefined) { - queryParameters['address'] = requestParameters.address; - } - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/mempool`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => MempoolTransactionListResponseFromJSON(jsonValue)); - } - - /** - * Retrieves all transactions that have been recently broadcast to the mempool. These are pending transactions awaiting confirmation. If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - * Get mempool transactions - */ - async getMempoolTransactionList(requestParameters: GetMempoolTransactionListRequest, initOverrides?: RequestInit): Promise { - const response = await this.getMempoolTransactionListRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Queries for transactions counts, age (by block height), fees (simple average), and size. All results broken down by transaction type and percentiles (p25, p50, p75, p95). - * Get statistics for mempool transactions - */ - async getMempoolTransactionStatsRaw(initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/mempool/stats`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => MempoolTransactionStatsResponseFromJSON(jsonValue)); - } - - /** - * Queries for transactions counts, age (by block height), fees (simple average), and size. All results broken down by transaction type and percentiles (p25, p50, p75, p95). - * Get statistics for mempool transactions - */ - async getMempoolTransactionStats(initOverrides?: RequestInit): Promise { - const response = await this.getMempoolTransactionStatsRaw(initOverrides); - return await response.value(); - } - - /** - * Retrieves a hex encoded serialized transaction for a given ID - * Get Raw Transaction - */ - async getRawTransactionByIdRaw(requestParameters: GetRawTransactionByIdRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.txId === null || requestParameters.txId === undefined) { - throw new runtime.RequiredError('txId','Required parameter requestParameters.txId was null or undefined when calling getRawTransactionById.'); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/{tx_id}/raw`.replace(`{${"tx_id"}}`, encodeURIComponent(String(requestParameters.txId))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => GetRawTransactionResultFromJSON(jsonValue)); - } - - /** - * Retrieves a hex encoded serialized transaction for a given ID - * Get Raw Transaction - */ - async getRawTransactionById(requestParameters: GetRawTransactionByIdRequest, initOverrides?: RequestInit): Promise { - const response = await this.getRawTransactionByIdRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves transaction details for a given transaction ID `import type { Transaction } from \'@stacks/stacks-blockchain-api-types\';` - * Get transaction - */ - async getTransactionByIdRaw(requestParameters: GetTransactionByIdRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.txId === null || requestParameters.txId === undefined) { - throw new runtime.RequiredError('txId','Required parameter requestParameters.txId was null or undefined when calling getTransactionById.'); - } - - const queryParameters: any = {}; - - if (requestParameters.eventOffset !== undefined) { - queryParameters['event_offset'] = requestParameters.eventOffset; - } - - if (requestParameters.eventLimit !== undefined) { - queryParameters['event_limit'] = requestParameters.eventLimit; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/{tx_id}`.replace(`{${"tx_id"}}`, encodeURIComponent(String(requestParameters.txId))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves transaction details for a given transaction ID `import type { Transaction } from \'@stacks/stacks-blockchain-api-types\';` - * Get transaction - */ - async getTransactionById(requestParameters: GetTransactionByIdRequest, initOverrides?: RequestInit): Promise { - const response = await this.getTransactionByIdRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves all recently mined transactions If using TypeScript, import typings for this response from our types package: `import type { TransactionResults } from \'@stacks/stacks-blockchain-api-types\';` - * Get recent transactions - */ - async getTransactionListRaw(requestParameters: GetTransactionListRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.type) { - queryParameters['type'] = requestParameters.type; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => TransactionResultsFromJSON(jsonValue)); - } - - /** - * Retrieves all recently mined transactions If using TypeScript, import typings for this response from our types package: `import type { TransactionResults } from \'@stacks/stacks-blockchain-api-types\';` - * Get recent transactions - */ - async getTransactionList(requestParameters: GetTransactionListRequest, initOverrides?: RequestInit): Promise { - const response = await this.getTransactionListRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of all transactions within a block for a given block hash. - * Transactions by block hash - */ - async getTransactionsByBlockHashRaw(requestParameters: GetTransactionsByBlockHashRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.blockHash === null || requestParameters.blockHash === undefined) { - throw new runtime.RequiredError('blockHash','Required parameter requestParameters.blockHash was null or undefined when calling getTransactionsByBlockHash.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/block/{block_hash}`.replace(`{${"block_hash"}}`, encodeURIComponent(String(requestParameters.blockHash))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => TransactionResultsFromJSON(jsonValue)); - } - - /** - * Retrieves a list of all transactions within a block for a given block hash. - * Transactions by block hash - */ - async getTransactionsByBlockHash(requestParameters: GetTransactionsByBlockHashRequest, initOverrides?: RequestInit): Promise { - const response = await this.getTransactionsByBlockHashRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves all transactions within a block at a given height - * Transactions by block height - */ - async getTransactionsByBlockHeightRaw(requestParameters: GetTransactionsByBlockHeightRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.height === null || requestParameters.height === undefined) { - throw new runtime.RequiredError('height','Required parameter requestParameters.height was null or undefined when calling getTransactionsByBlockHeight.'); - } - - const queryParameters: any = {}; - - if (requestParameters.limit !== undefined) { - queryParameters['limit'] = requestParameters.limit; - } - - if (requestParameters.offset !== undefined) { - queryParameters['offset'] = requestParameters.offset; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/block_height/{height}`.replace(`{${"height"}}`, encodeURIComponent(String(requestParameters.height))), - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => TransactionResultsFromJSON(jsonValue)); - } - - /** - * Retrieves all transactions within a block at a given height - * Transactions by block height - */ - async getTransactionsByBlockHeight(requestParameters: GetTransactionsByBlockHeightRequest, initOverrides?: RequestInit): Promise { - const response = await this.getTransactionsByBlockHeightRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Retrieves a list of transactions for a given list of transaction IDs If using TypeScript, import typings for this response from our types package: `import type { Transaction } from \'@stacks/stacks-blockchain-api-types\';` - * Get list of details for transactions - */ - async getTxListDetailsRaw(requestParameters: GetTxListDetailsRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.txId === null || requestParameters.txId === undefined) { - throw new runtime.RequiredError('txId','Required parameter requestParameters.txId was null or undefined when calling getTxListDetails.'); - } - - const queryParameters: any = {}; - - if (requestParameters.txId) { - queryParameters['tx_id'] = requestParameters.txId; - } - - if (requestParameters.eventOffset !== undefined) { - queryParameters['event_offset'] = requestParameters.eventOffset; - } - - if (requestParameters.eventLimit !== undefined) { - queryParameters['event_limit'] = requestParameters.eventLimit; - } - - if (requestParameters.unanchored !== undefined) { - queryParameters['unanchored'] = requestParameters.unanchored; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/extended/v1/tx/multiple`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.JSONApiResponse(response); - } - - /** - * Retrieves a list of transactions for a given list of transaction IDs If using TypeScript, import typings for this response from our types package: `import type { Transaction } from \'@stacks/stacks-blockchain-api-types\';` - * Get list of details for transactions - */ - async getTxListDetails(requestParameters: GetTxListDetailsRequest, initOverrides?: RequestInit): Promise<{ [key: string]: object; }> { - const response = await this.getTxListDetailsRaw(requestParameters, initOverrides); - return await response.value(); - } - - /** - * Broadcasts raw transactions on the network. You can use the [@stacks/transactions](https://github.com/blockstack/stacks.js) project to generate a raw transaction payload. - * Broadcast raw transaction - */ - async postCoreNodeTransactionsRaw(requestParameters: PostCoreNodeTransactionsRequest, initOverrides?: RequestInit): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/octet-stream'; - - const response = await this.request({ - path: `/v2/transactions`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: requestParameters.body as any, - }, initOverrides); - - return new runtime.TextApiResponse(response) as any; - } - - /** - * Broadcasts raw transactions on the network. You can use the [@stacks/transactions](https://github.com/blockstack/stacks.js) project to generate a raw transaction payload. - * Broadcast raw transaction - */ - async postCoreNodeTransactions(requestParameters: PostCoreNodeTransactionsRequest, initOverrides?: RequestInit): Promise { - const response = await this.postCoreNodeTransactionsRaw(requestParameters, initOverrides); - return await response.value(); - } - -} - -/** - * @export - * @enum {string} - */ -export enum GetFilteredEventsTypeEnum { - smart_contract_log = 'smart_contract_log', - stx_lock = 'stx_lock', - stx_asset = 'stx_asset', - fungible_token_asset = 'fungible_token_asset', - non_fungible_token_asset = 'non_fungible_token_asset' -} -/** - * @export - * @enum {string} - */ -export enum GetTransactionListTypeEnum { - coinbase = 'coinbase', - token_transfer = 'token_transfer', - smart_contract = 'smart_contract', - contract_call = 'contract_call', - poison_microblock = 'poison_microblock' -} diff --git a/client/src/generated/apis/index.ts b/client/src/generated/apis/index.ts deleted file mode 100644 index 11ee668ea..000000000 --- a/client/src/generated/apis/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -export * from './AccountsApi'; -export * from './BlocksApi'; -export * from './FaucetsApi'; -export * from './FeesApi'; -export * from './FungibleTokensApi'; -export * from './InfoApi'; -export * from './MempoolApi'; -export * from './MicroblocksApi'; -export * from './NamesApi'; -export * from './NonFungibleTokensApi'; -export * from './RosettaApi'; -export * from './SearchApi'; -export * from './SmartContractsApi'; -export * from './StackingApi'; -export * from './StackingRewardsApi'; -export * from './TransactionsApi'; diff --git a/client/src/generated/index.ts b/client/src/generated/index.ts deleted file mode 100644 index be9d1edee..000000000 --- a/client/src/generated/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -export * from './runtime'; -export * from './apis'; -export * from './models'; diff --git a/client/src/generated/models/AccountDataResponse.ts b/client/src/generated/models/AccountDataResponse.ts deleted file mode 100644 index d26274769..000000000 --- a/client/src/generated/models/AccountDataResponse.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request for account data - * @export - * @interface AccountDataResponse - */ -export interface AccountDataResponse { - /** - * - * @type {string} - * @memberof AccountDataResponse - */ - balance: string; - /** - * - * @type {string} - * @memberof AccountDataResponse - */ - locked: string; - /** - * - * @type {number} - * @memberof AccountDataResponse - */ - unlock_height: number; - /** - * - * @type {number} - * @memberof AccountDataResponse - */ - nonce: number; - /** - * - * @type {string} - * @memberof AccountDataResponse - */ - balance_proof: string; - /** - * - * @type {string} - * @memberof AccountDataResponse - */ - nonce_proof: string; -} - -export function AccountDataResponseFromJSON(json: any): AccountDataResponse { - return AccountDataResponseFromJSONTyped(json, false); -} - -export function AccountDataResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AccountDataResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'balance': json['balance'], - 'locked': json['locked'], - 'unlock_height': json['unlock_height'], - 'nonce': json['nonce'], - 'balance_proof': json['balance_proof'], - 'nonce_proof': json['nonce_proof'], - }; -} - -export function AccountDataResponseToJSON(value?: AccountDataResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'balance': value.balance, - 'locked': value.locked, - 'unlock_height': value.unlock_height, - 'nonce': value.nonce, - 'balance_proof': value.balance_proof, - 'nonce_proof': value.nonce_proof, - }; -} - diff --git a/client/src/generated/models/AddressAssetsListResponse.ts b/client/src/generated/models/AddressAssetsListResponse.ts deleted file mode 100644 index b38763213..000000000 --- a/client/src/generated/models/AddressAssetsListResponse.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that returns address assets - * @export - * @interface AddressAssetsListResponse - */ -export interface AddressAssetsListResponse { - /** - * - * @type {number} - * @memberof AddressAssetsListResponse - */ - limit: number; - /** - * - * @type {number} - * @memberof AddressAssetsListResponse - */ - offset: number; - /** - * - * @type {number} - * @memberof AddressAssetsListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof AddressAssetsListResponse - */ - results: Array; -} - -export function AddressAssetsListResponseFromJSON(json: any): AddressAssetsListResponse { - return AddressAssetsListResponseFromJSONTyped(json, false); -} - -export function AddressAssetsListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressAssetsListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': json['results'], - }; -} - -export function AddressAssetsListResponseToJSON(value?: AddressAssetsListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/AddressBalanceResponse.ts b/client/src/generated/models/AddressBalanceResponse.ts deleted file mode 100644 index 852dad159..000000000 --- a/client/src/generated/models/AddressBalanceResponse.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - AddressTokenOfferingLocked, - AddressTokenOfferingLockedFromJSON, - AddressTokenOfferingLockedFromJSONTyped, - AddressTokenOfferingLockedToJSON, - StxBalance, - StxBalanceFromJSON, - StxBalanceFromJSONTyped, - StxBalanceToJSON, -} from './'; - -/** - * GET request that returns address balances - * @export - * @interface AddressBalanceResponse - */ -export interface AddressBalanceResponse { - /** - * - * @type {StxBalance} - * @memberof AddressBalanceResponse - */ - stx: StxBalance; - /** - * - * @type {{ [key: string]: object; }} - * @memberof AddressBalanceResponse - */ - fungible_tokens: { [key: string]: object; }; - /** - * - * @type {{ [key: string]: object; }} - * @memberof AddressBalanceResponse - */ - non_fungible_tokens: { [key: string]: object; }; - /** - * - * @type {AddressTokenOfferingLocked} - * @memberof AddressBalanceResponse - */ - token_offering_locked?: AddressTokenOfferingLocked; -} - -export function AddressBalanceResponseFromJSON(json: any): AddressBalanceResponse { - return AddressBalanceResponseFromJSONTyped(json, false); -} - -export function AddressBalanceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressBalanceResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'stx': StxBalanceFromJSON(json['stx']), - 'fungible_tokens': json['fungible_tokens'], - 'non_fungible_tokens': json['non_fungible_tokens'], - 'token_offering_locked': !exists(json, 'token_offering_locked') ? undefined : AddressTokenOfferingLockedFromJSON(json['token_offering_locked']), - }; -} - -export function AddressBalanceResponseToJSON(value?: AddressBalanceResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'stx': StxBalanceToJSON(value.stx), - 'fungible_tokens': value.fungible_tokens, - 'non_fungible_tokens': value.non_fungible_tokens, - 'token_offering_locked': AddressTokenOfferingLockedToJSON(value.token_offering_locked), - }; -} - diff --git a/client/src/generated/models/AddressNftListResponse.ts b/client/src/generated/models/AddressNftListResponse.ts deleted file mode 100644 index 3bfb1833a..000000000 --- a/client/src/generated/models/AddressNftListResponse.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NftEvent, - NftEventFromJSON, - NftEventFromJSONTyped, - NftEventToJSON, -} from './'; - -/** - * - * @export - * @interface AddressNftListResponse - */ -export interface AddressNftListResponse { - /** - * - * @type {number} - * @memberof AddressNftListResponse - */ - limit: number; - /** - * - * @type {number} - * @memberof AddressNftListResponse - */ - offset: number; - /** - * - * @type {number} - * @memberof AddressNftListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof AddressNftListResponse - */ - nft_events: Array; -} - -export function AddressNftListResponseFromJSON(json: any): AddressNftListResponse { - return AddressNftListResponseFromJSONTyped(json, false); -} - -export function AddressNftListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressNftListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'nft_events': ((json['nft_events'] as Array).map(NftEventFromJSON)), - }; -} - -export function AddressNftListResponseToJSON(value?: AddressNftListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'nft_events': ((value.nft_events as Array).map(NftEventToJSON)), - }; -} - diff --git a/client/src/generated/models/AddressNftListResponseValue.ts b/client/src/generated/models/AddressNftListResponseValue.ts deleted file mode 100644 index a326400dd..000000000 --- a/client/src/generated/models/AddressNftListResponseValue.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Identifier of the NFT - * @export - * @interface AddressNftListResponseValue - */ -export interface AddressNftListResponseValue { - /** - * Hex string representing the identifier of the NFT - * @type {string} - * @memberof AddressNftListResponseValue - */ - hex: string; - /** - * Readable string of the NFT identifier - * @type {string} - * @memberof AddressNftListResponseValue - */ - repr: string; -} - -export function AddressNftListResponseValueFromJSON(json: any): AddressNftListResponseValue { - return AddressNftListResponseValueFromJSONTyped(json, false); -} - -export function AddressNftListResponseValueFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressNftListResponseValue { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'hex': json['hex'], - 'repr': json['repr'], - }; -} - -export function AddressNftListResponseValueToJSON(value?: AddressNftListResponseValue | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'hex': value.hex, - 'repr': value.repr, - }; -} - diff --git a/client/src/generated/models/AddressNonces.ts b/client/src/generated/models/AddressNonces.ts deleted file mode 100644 index f08de2bf5..000000000 --- a/client/src/generated/models/AddressNonces.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions - * @export - * @interface AddressNonces - */ -export interface AddressNonces { - /** - * The latest nonce found within mempool transactions sent by this address. Will be null if there are no current mempool transactions for this address. - * @type {number} - * @memberof AddressNonces - */ - last_mempool_tx_nonce: number | null; - /** - * The latest nonce found within transactions sent by this address, including unanchored microblock transactions. Will be null if there are no current transactions for this address. - * @type {number} - * @memberof AddressNonces - */ - last_executed_tx_nonce: number | null; - /** - * The likely nonce required for creating the next transaction, based on the last nonces seen by the API. This can be incorrect if the API's mempool or transactions aren't fully synchronized, even by a small amount, or if a previous transaction is still propagating through the Stacks blockchain network when this endpoint is called. - * @type {number} - * @memberof AddressNonces - */ - possible_next_nonce: number; - /** - * Nonces that appear to be missing and likely causing a mempool transaction to be stuck. - * @type {Array} - * @memberof AddressNonces - */ - detected_missing_nonces: Array; - /** - * Nonces currently in mempool for this address. - * @type {Array} - * @memberof AddressNonces - */ - detected_mempool_nonces?: Array; -} - -export function AddressNoncesFromJSON(json: any): AddressNonces { - return AddressNoncesFromJSONTyped(json, false); -} - -export function AddressNoncesFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressNonces { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'last_mempool_tx_nonce': json['last_mempool_tx_nonce'], - 'last_executed_tx_nonce': json['last_executed_tx_nonce'], - 'possible_next_nonce': json['possible_next_nonce'], - 'detected_missing_nonces': json['detected_missing_nonces'], - 'detected_mempool_nonces': !exists(json, 'detected_mempool_nonces') ? undefined : json['detected_mempool_nonces'], - }; -} - -export function AddressNoncesToJSON(value?: AddressNonces | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'last_mempool_tx_nonce': value.last_mempool_tx_nonce, - 'last_executed_tx_nonce': value.last_executed_tx_nonce, - 'possible_next_nonce': value.possible_next_nonce, - 'detected_missing_nonces': value.detected_missing_nonces, - 'detected_mempool_nonces': value.detected_mempool_nonces, - }; -} - diff --git a/client/src/generated/models/AddressStxInboundListResponse.ts b/client/src/generated/models/AddressStxInboundListResponse.ts deleted file mode 100644 index ffd7165ae..000000000 --- a/client/src/generated/models/AddressStxInboundListResponse.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - InboundStxTransfer, - InboundStxTransferFromJSON, - InboundStxTransferFromJSONTyped, - InboundStxTransferToJSON, -} from './'; - -/** - * GET request that returns a list of inbound STX transfers with a memo - * @export - * @interface AddressStxInboundListResponse - */ -export interface AddressStxInboundListResponse { - /** - * - * @type {number} - * @memberof AddressStxInboundListResponse - */ - limit: number; - /** - * - * @type {number} - * @memberof AddressStxInboundListResponse - */ - offset: number; - /** - * - * @type {number} - * @memberof AddressStxInboundListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof AddressStxInboundListResponse - */ - results: Array; -} - -export function AddressStxInboundListResponseFromJSON(json: any): AddressStxInboundListResponse { - return AddressStxInboundListResponseFromJSONTyped(json, false); -} - -export function AddressStxInboundListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressStxInboundListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': ((json['results'] as Array).map(InboundStxTransferFromJSON)), - }; -} - -export function AddressStxInboundListResponseToJSON(value?: AddressStxInboundListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': ((value.results as Array).map(InboundStxTransferToJSON)), - }; -} - diff --git a/client/src/generated/models/AddressTokenOfferingLocked.ts b/client/src/generated/models/AddressTokenOfferingLocked.ts deleted file mode 100644 index 8a57a8c7d..000000000 --- a/client/src/generated/models/AddressTokenOfferingLocked.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - AddressUnlockSchedule, - AddressUnlockScheduleFromJSON, - AddressUnlockScheduleFromJSONTyped, - AddressUnlockScheduleToJSON, -} from './'; - -/** - * Token Offering Locked - * @export - * @interface AddressTokenOfferingLocked - */ -export interface AddressTokenOfferingLocked { - /** - * Micro-STX amount still locked at current block height. - * @type {string} - * @memberof AddressTokenOfferingLocked - */ - total_locked: string; - /** - * Micro-STX amount unlocked at current block height. - * @type {string} - * @memberof AddressTokenOfferingLocked - */ - total_unlocked: string; - /** - * - * @type {Array} - * @memberof AddressTokenOfferingLocked - */ - unlock_schedule: Array; -} - -export function AddressTokenOfferingLockedFromJSON(json: any): AddressTokenOfferingLocked { - return AddressTokenOfferingLockedFromJSONTyped(json, false); -} - -export function AddressTokenOfferingLockedFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressTokenOfferingLocked { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'total_locked': json['total_locked'], - 'total_unlocked': json['total_unlocked'], - 'unlock_schedule': ((json['unlock_schedule'] as Array).map(AddressUnlockScheduleFromJSON)), - }; -} - -export function AddressTokenOfferingLockedToJSON(value?: AddressTokenOfferingLocked | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'total_locked': value.total_locked, - 'total_unlocked': value.total_unlocked, - 'unlock_schedule': ((value.unlock_schedule as Array).map(AddressUnlockScheduleToJSON)), - }; -} - diff --git a/client/src/generated/models/AddressTransactionWithTransfers.ts b/client/src/generated/models/AddressTransactionWithTransfers.ts deleted file mode 100644 index 384b27146..000000000 --- a/client/src/generated/models/AddressTransactionWithTransfers.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - AddressTransactionWithTransfersFtTransfers, - AddressTransactionWithTransfersFtTransfersFromJSON, - AddressTransactionWithTransfersFtTransfersFromJSONTyped, - AddressTransactionWithTransfersFtTransfersToJSON, - AddressTransactionWithTransfersNftTransfers, - AddressTransactionWithTransfersNftTransfersFromJSON, - AddressTransactionWithTransfersNftTransfersFromJSONTyped, - AddressTransactionWithTransfersNftTransfersToJSON, - AddressTransactionWithTransfersStxTransfers, - AddressTransactionWithTransfersStxTransfersFromJSON, - AddressTransactionWithTransfersStxTransfersFromJSONTyped, - AddressTransactionWithTransfersStxTransfersToJSON, -} from './'; - -/** - * Transaction with STX transfers for a given address - * @export - * @interface AddressTransactionWithTransfers - */ -export interface AddressTransactionWithTransfers { - /** - * Describes all transaction types on Stacks 2.0 blockchain - * @type {object} - * @memberof AddressTransactionWithTransfers - */ - tx: object; - /** - * Total sent from the given address, including the tx fee, in micro-STX as an integer string. - * @type {string} - * @memberof AddressTransactionWithTransfers - */ - stx_sent: string; - /** - * Total received by the given address in micro-STX as an integer string. - * @type {string} - * @memberof AddressTransactionWithTransfers - */ - stx_received: string; - /** - * - * @type {Array} - * @memberof AddressTransactionWithTransfers - */ - stx_transfers: Array; - /** - * - * @type {Array} - * @memberof AddressTransactionWithTransfers - */ - ft_transfers?: Array; - /** - * - * @type {Array} - * @memberof AddressTransactionWithTransfers - */ - nft_transfers?: Array; -} - -export function AddressTransactionWithTransfersFromJSON(json: any): AddressTransactionWithTransfers { - return AddressTransactionWithTransfersFromJSONTyped(json, false); -} - -export function AddressTransactionWithTransfersFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressTransactionWithTransfers { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'tx': json['tx'], - 'stx_sent': json['stx_sent'], - 'stx_received': json['stx_received'], - 'stx_transfers': ((json['stx_transfers'] as Array).map(AddressTransactionWithTransfersStxTransfersFromJSON)), - 'ft_transfers': !exists(json, 'ft_transfers') ? undefined : ((json['ft_transfers'] as Array).map(AddressTransactionWithTransfersFtTransfersFromJSON)), - 'nft_transfers': !exists(json, 'nft_transfers') ? undefined : ((json['nft_transfers'] as Array).map(AddressTransactionWithTransfersNftTransfersFromJSON)), - }; -} - -export function AddressTransactionWithTransfersToJSON(value?: AddressTransactionWithTransfers | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'tx': value.tx, - 'stx_sent': value.stx_sent, - 'stx_received': value.stx_received, - 'stx_transfers': ((value.stx_transfers as Array).map(AddressTransactionWithTransfersStxTransfersToJSON)), - 'ft_transfers': value.ft_transfers === undefined ? undefined : ((value.ft_transfers as Array).map(AddressTransactionWithTransfersFtTransfersToJSON)), - 'nft_transfers': value.nft_transfers === undefined ? undefined : ((value.nft_transfers as Array).map(AddressTransactionWithTransfersNftTransfersToJSON)), - }; -} - diff --git a/client/src/generated/models/AddressTransactionWithTransfersFtTransfers.ts b/client/src/generated/models/AddressTransactionWithTransfersFtTransfers.ts deleted file mode 100644 index 45e60130a..000000000 --- a/client/src/generated/models/AddressTransactionWithTransfersFtTransfers.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface AddressTransactionWithTransfersFtTransfers - */ -export interface AddressTransactionWithTransfersFtTransfers { - /** - * Fungible Token asset identifier. - * @type {string} - * @memberof AddressTransactionWithTransfersFtTransfers - */ - asset_identifier: string; - /** - * Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals. - * @type {string} - * @memberof AddressTransactionWithTransfersFtTransfers - */ - amount: string; - /** - * Principal that sent the asset. - * @type {string} - * @memberof AddressTransactionWithTransfersFtTransfers - */ - sender?: string; - /** - * Principal that received the asset. - * @type {string} - * @memberof AddressTransactionWithTransfersFtTransfers - */ - recipient?: string; -} - -export function AddressTransactionWithTransfersFtTransfersFromJSON(json: any): AddressTransactionWithTransfersFtTransfers { - return AddressTransactionWithTransfersFtTransfersFromJSONTyped(json, false); -} - -export function AddressTransactionWithTransfersFtTransfersFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressTransactionWithTransfersFtTransfers { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'asset_identifier': json['asset_identifier'], - 'amount': json['amount'], - 'sender': !exists(json, 'sender') ? undefined : json['sender'], - 'recipient': !exists(json, 'recipient') ? undefined : json['recipient'], - }; -} - -export function AddressTransactionWithTransfersFtTransfersToJSON(value?: AddressTransactionWithTransfersFtTransfers | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'asset_identifier': value.asset_identifier, - 'amount': value.amount, - 'sender': value.sender, - 'recipient': value.recipient, - }; -} - diff --git a/client/src/generated/models/AddressTransactionWithTransfersNftTransfers.ts b/client/src/generated/models/AddressTransactionWithTransfersNftTransfers.ts deleted file mode 100644 index adf8f33be..000000000 --- a/client/src/generated/models/AddressTransactionWithTransfersNftTransfers.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - AddressTransactionWithTransfersValue, - AddressTransactionWithTransfersValueFromJSON, - AddressTransactionWithTransfersValueFromJSONTyped, - AddressTransactionWithTransfersValueToJSON, -} from './'; - -/** - * - * @export - * @interface AddressTransactionWithTransfersNftTransfers - */ -export interface AddressTransactionWithTransfersNftTransfers { - /** - * Non Fungible Token asset identifier. - * @type {string} - * @memberof AddressTransactionWithTransfersNftTransfers - */ - asset_identifier: string; - /** - * - * @type {AddressTransactionWithTransfersValue} - * @memberof AddressTransactionWithTransfersNftTransfers - */ - value: AddressTransactionWithTransfersValue; - /** - * Principal that sent the asset. - * @type {string} - * @memberof AddressTransactionWithTransfersNftTransfers - */ - sender?: string; - /** - * Principal that received the asset. - * @type {string} - * @memberof AddressTransactionWithTransfersNftTransfers - */ - recipient?: string; -} - -export function AddressTransactionWithTransfersNftTransfersFromJSON(json: any): AddressTransactionWithTransfersNftTransfers { - return AddressTransactionWithTransfersNftTransfersFromJSONTyped(json, false); -} - -export function AddressTransactionWithTransfersNftTransfersFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressTransactionWithTransfersNftTransfers { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'asset_identifier': json['asset_identifier'], - 'value': AddressTransactionWithTransfersValueFromJSON(json['value']), - 'sender': !exists(json, 'sender') ? undefined : json['sender'], - 'recipient': !exists(json, 'recipient') ? undefined : json['recipient'], - }; -} - -export function AddressTransactionWithTransfersNftTransfersToJSON(value?: AddressTransactionWithTransfersNftTransfers | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'asset_identifier': value.asset_identifier, - 'value': AddressTransactionWithTransfersValueToJSON(value.value), - 'sender': value.sender, - 'recipient': value.recipient, - }; -} - diff --git a/client/src/generated/models/AddressTransactionWithTransfersStxTransfers.ts b/client/src/generated/models/AddressTransactionWithTransfersStxTransfers.ts deleted file mode 100644 index e8b5e190d..000000000 --- a/client/src/generated/models/AddressTransactionWithTransfersStxTransfers.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface AddressTransactionWithTransfersStxTransfers - */ -export interface AddressTransactionWithTransfersStxTransfers { - /** - * Amount transferred in micro-STX as an integer string. - * @type {string} - * @memberof AddressTransactionWithTransfersStxTransfers - */ - amount: string; - /** - * Principal that sent STX. This is unspecified if the STX were minted. - * @type {string} - * @memberof AddressTransactionWithTransfersStxTransfers - */ - sender?: string; - /** - * Principal that received STX. This is unspecified if the STX were burned. - * @type {string} - * @memberof AddressTransactionWithTransfersStxTransfers - */ - recipient?: string; -} - -export function AddressTransactionWithTransfersStxTransfersFromJSON(json: any): AddressTransactionWithTransfersStxTransfers { - return AddressTransactionWithTransfersStxTransfersFromJSONTyped(json, false); -} - -export function AddressTransactionWithTransfersStxTransfersFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressTransactionWithTransfersStxTransfers { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'amount': json['amount'], - 'sender': !exists(json, 'sender') ? undefined : json['sender'], - 'recipient': !exists(json, 'recipient') ? undefined : json['recipient'], - }; -} - -export function AddressTransactionWithTransfersStxTransfersToJSON(value?: AddressTransactionWithTransfersStxTransfers | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'amount': value.amount, - 'sender': value.sender, - 'recipient': value.recipient, - }; -} - diff --git a/client/src/generated/models/AddressTransactionWithTransfersValue.ts b/client/src/generated/models/AddressTransactionWithTransfersValue.ts deleted file mode 100644 index 1894ee809..000000000 --- a/client/src/generated/models/AddressTransactionWithTransfersValue.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Non Fungible Token asset value. - * @export - * @interface AddressTransactionWithTransfersValue - */ -export interface AddressTransactionWithTransfersValue { - /** - * - * @type {string} - * @memberof AddressTransactionWithTransfersValue - */ - hex: string; - /** - * - * @type {string} - * @memberof AddressTransactionWithTransfersValue - */ - repr: string; -} - -export function AddressTransactionWithTransfersValueFromJSON(json: any): AddressTransactionWithTransfersValue { - return AddressTransactionWithTransfersValueFromJSONTyped(json, false); -} - -export function AddressTransactionWithTransfersValueFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressTransactionWithTransfersValue { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'hex': json['hex'], - 'repr': json['repr'], - }; -} - -export function AddressTransactionWithTransfersValueToJSON(value?: AddressTransactionWithTransfersValue | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'hex': value.hex, - 'repr': value.repr, - }; -} - diff --git a/client/src/generated/models/AddressTransactionsListResponse.ts b/client/src/generated/models/AddressTransactionsListResponse.ts deleted file mode 100644 index a493ee9b0..000000000 --- a/client/src/generated/models/AddressTransactionsListResponse.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that returns account transactions - * @export - * @interface AddressTransactionsListResponse - */ -export interface AddressTransactionsListResponse { - /** - * - * @type {number} - * @memberof AddressTransactionsListResponse - */ - limit: number; - /** - * - * @type {number} - * @memberof AddressTransactionsListResponse - */ - offset: number; - /** - * - * @type {number} - * @memberof AddressTransactionsListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof AddressTransactionsListResponse - */ - results: Array; -} - -export function AddressTransactionsListResponseFromJSON(json: any): AddressTransactionsListResponse { - return AddressTransactionsListResponseFromJSONTyped(json, false); -} - -export function AddressTransactionsListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressTransactionsListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': json['results'], - }; -} - -export function AddressTransactionsListResponseToJSON(value?: AddressTransactionsListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/AddressTransactionsWithTransfersListResponse.ts b/client/src/generated/models/AddressTransactionsWithTransfersListResponse.ts deleted file mode 100644 index 3f5e59d5f..000000000 --- a/client/src/generated/models/AddressTransactionsWithTransfersListResponse.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - AddressTransactionWithTransfers, - AddressTransactionWithTransfersFromJSON, - AddressTransactionWithTransfersFromJSONTyped, - AddressTransactionWithTransfersToJSON, -} from './'; - -/** - * GET request that returns account transactions - * @export - * @interface AddressTransactionsWithTransfersListResponse - */ -export interface AddressTransactionsWithTransfersListResponse { - /** - * - * @type {number} - * @memberof AddressTransactionsWithTransfersListResponse - */ - limit: number; - /** - * - * @type {number} - * @memberof AddressTransactionsWithTransfersListResponse - */ - offset: number; - /** - * - * @type {number} - * @memberof AddressTransactionsWithTransfersListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof AddressTransactionsWithTransfersListResponse - */ - results: Array; -} - -export function AddressTransactionsWithTransfersListResponseFromJSON(json: any): AddressTransactionsWithTransfersListResponse { - return AddressTransactionsWithTransfersListResponseFromJSONTyped(json, false); -} - -export function AddressTransactionsWithTransfersListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressTransactionsWithTransfersListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': ((json['results'] as Array).map(AddressTransactionWithTransfersFromJSON)), - }; -} - -export function AddressTransactionsWithTransfersListResponseToJSON(value?: AddressTransactionsWithTransfersListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': ((value.results as Array).map(AddressTransactionWithTransfersToJSON)), - }; -} - diff --git a/client/src/generated/models/AddressUnlockSchedule.ts b/client/src/generated/models/AddressUnlockSchedule.ts deleted file mode 100644 index ac25d18f5..000000000 --- a/client/src/generated/models/AddressUnlockSchedule.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Unlock schedule amount and block height - * @export - * @interface AddressUnlockSchedule - */ -export interface AddressUnlockSchedule { - /** - * Micro-STX amount locked at this block height. - * @type {string} - * @memberof AddressUnlockSchedule - */ - amount: string; - /** - * - * @type {number} - * @memberof AddressUnlockSchedule - */ - block_height: number; -} - -export function AddressUnlockScheduleFromJSON(json: any): AddressUnlockSchedule { - return AddressUnlockScheduleFromJSONTyped(json, false); -} - -export function AddressUnlockScheduleFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressUnlockSchedule { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'amount': json['amount'], - 'block_height': json['block_height'], - }; -} - -export function AddressUnlockScheduleToJSON(value?: AddressUnlockSchedule | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'amount': value.amount, - 'block_height': value.block_height, - }; -} - diff --git a/client/src/generated/models/Block.ts b/client/src/generated/models/Block.ts deleted file mode 100644 index 411401850..000000000 --- a/client/src/generated/models/Block.ts +++ /dev/null @@ -1,216 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * A block - * @export - * @interface Block - */ -export interface Block { - /** - * Set to `true` if block corresponds to the canonical chain tip - * @type {boolean} - * @memberof Block - */ - canonical: boolean; - /** - * Height of the block - * @type {number} - * @memberof Block - */ - height: number; - /** - * Hash representing the block - * @type {string} - * @memberof Block - */ - hash: string; - /** - * The only hash that can uniquely identify an anchored block or an unconfirmed state trie - * @type {string} - * @memberof Block - */ - index_block_hash: string; - /** - * Hash of the parent block - * @type {string} - * @memberof Block - */ - parent_block_hash: string; - /** - * Unix timestamp (in seconds) indicating when this block was mined. - * @type {number} - * @memberof Block - */ - burn_block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. - * @type {string} - * @memberof Block - */ - burn_block_time_iso: string; - /** - * Hash of the anchor chain block - * @type {string} - * @memberof Block - */ - burn_block_hash: string; - /** - * Height of the anchor chain block - * @type {number} - * @memberof Block - */ - burn_block_height: number; - /** - * Anchor chain transaction ID - * @type {string} - * @memberof Block - */ - miner_txid: string; - /** - * The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. - * @type {string} - * @memberof Block - */ - parent_microblock_hash: string; - /** - * The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. - * @type {number} - * @memberof Block - */ - parent_microblock_sequence: number; - /** - * List of transactions included in the block - * @type {Array} - * @memberof Block - */ - txs: Array; - /** - * List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list. - * @type {Array} - * @memberof Block - */ - microblocks_accepted: Array; - /** - * List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list. - * @type {Array} - * @memberof Block - */ - microblocks_streamed: Array; - /** - * Execution cost read count. - * @type {number} - * @memberof Block - */ - execution_cost_read_count: number; - /** - * Execution cost read length. - * @type {number} - * @memberof Block - */ - execution_cost_read_length: number; - /** - * Execution cost runtime. - * @type {number} - * @memberof Block - */ - execution_cost_runtime: number; - /** - * Execution cost write count. - * @type {number} - * @memberof Block - */ - execution_cost_write_count: number; - /** - * Execution cost write length. - * @type {number} - * @memberof Block - */ - execution_cost_write_length: number; - /** - * List of txs counts in each accepted microblock - * @type {{ [key: string]: number; }} - * @memberof Block - */ - microblock_tx_count: { [key: string]: number; }; -} - -export function BlockFromJSON(json: any): Block { - return BlockFromJSONTyped(json, false); -} - -export function BlockFromJSONTyped(json: any, ignoreDiscriminator: boolean): Block { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'canonical': json['canonical'], - 'height': json['height'], - 'hash': json['hash'], - 'index_block_hash': json['index_block_hash'], - 'parent_block_hash': json['parent_block_hash'], - 'burn_block_time': json['burn_block_time'], - 'burn_block_time_iso': json['burn_block_time_iso'], - 'burn_block_hash': json['burn_block_hash'], - 'burn_block_height': json['burn_block_height'], - 'miner_txid': json['miner_txid'], - 'parent_microblock_hash': json['parent_microblock_hash'], - 'parent_microblock_sequence': json['parent_microblock_sequence'], - 'txs': json['txs'], - 'microblocks_accepted': json['microblocks_accepted'], - 'microblocks_streamed': json['microblocks_streamed'], - 'execution_cost_read_count': json['execution_cost_read_count'], - 'execution_cost_read_length': json['execution_cost_read_length'], - 'execution_cost_runtime': json['execution_cost_runtime'], - 'execution_cost_write_count': json['execution_cost_write_count'], - 'execution_cost_write_length': json['execution_cost_write_length'], - 'microblock_tx_count': json['microblock_tx_count'], - }; -} - -export function BlockToJSON(value?: Block | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'canonical': value.canonical, - 'height': value.height, - 'hash': value.hash, - 'index_block_hash': value.index_block_hash, - 'parent_block_hash': value.parent_block_hash, - 'burn_block_time': value.burn_block_time, - 'burn_block_time_iso': value.burn_block_time_iso, - 'burn_block_hash': value.burn_block_hash, - 'burn_block_height': value.burn_block_height, - 'miner_txid': value.miner_txid, - 'parent_microblock_hash': value.parent_microblock_hash, - 'parent_microblock_sequence': value.parent_microblock_sequence, - 'txs': value.txs, - 'microblocks_accepted': value.microblocks_accepted, - 'microblocks_streamed': value.microblocks_streamed, - 'execution_cost_read_count': value.execution_cost_read_count, - 'execution_cost_read_length': value.execution_cost_read_length, - 'execution_cost_runtime': value.execution_cost_runtime, - 'execution_cost_write_count': value.execution_cost_write_count, - 'execution_cost_write_length': value.execution_cost_write_length, - 'microblock_tx_count': value.microblock_tx_count, - }; -} - diff --git a/client/src/generated/models/BlockListResponse.ts b/client/src/generated/models/BlockListResponse.ts deleted file mode 100644 index a6d4d2abf..000000000 --- a/client/src/generated/models/BlockListResponse.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - Block, - BlockFromJSON, - BlockFromJSONTyped, - BlockToJSON, -} from './'; - -/** - * GET request that returns blocks - * @export - * @interface BlockListResponse - */ -export interface BlockListResponse { - /** - * The number of blocks to return - * @type {number} - * @memberof BlockListResponse - */ - limit: number; - /** - * The number to blocks to skip (starting at `0`) - * @type {number} - * @memberof BlockListResponse - */ - offset: number; - /** - * The number of blocks available - * @type {number} - * @memberof BlockListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof BlockListResponse - */ - results: Array; -} - -export function BlockListResponseFromJSON(json: any): BlockListResponse { - return BlockListResponseFromJSONTyped(json, false); -} - -export function BlockListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): BlockListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': ((json['results'] as Array).map(BlockFromJSON)), - }; -} - -export function BlockListResponseToJSON(value?: BlockListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': ((value.results as Array).map(BlockToJSON)), - }; -} - diff --git a/client/src/generated/models/BnsError.ts b/client/src/generated/models/BnsError.ts deleted file mode 100644 index 3eb24ec09..000000000 --- a/client/src/generated/models/BnsError.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Error - * @export - * @interface BnsError - */ -export interface BnsError { - /** - * - * @type {string} - * @memberof BnsError - */ - error?: string; -} - -export function BnsErrorFromJSON(json: any): BnsError { - return BnsErrorFromJSONTyped(json, false); -} - -export function BnsErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): BnsError { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'error': !exists(json, 'error') ? undefined : json['error'], - }; -} - -export function BnsErrorToJSON(value?: BnsError | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'error': value.error, - }; -} - diff --git a/client/src/generated/models/BnsGetAllNamespacesResponse.ts b/client/src/generated/models/BnsGetAllNamespacesResponse.ts deleted file mode 100644 index 3951a0729..000000000 --- a/client/src/generated/models/BnsGetAllNamespacesResponse.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Fetch a list of all namespaces known to the node. - * @export - * @interface BnsGetAllNamespacesResponse - */ -export interface BnsGetAllNamespacesResponse { - /** - * - * @type {Array} - * @memberof BnsGetAllNamespacesResponse - */ - namespaces: Array; -} - -export function BnsGetAllNamespacesResponseFromJSON(json: any): BnsGetAllNamespacesResponse { - return BnsGetAllNamespacesResponseFromJSONTyped(json, false); -} - -export function BnsGetAllNamespacesResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): BnsGetAllNamespacesResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'namespaces': json['namespaces'], - }; -} - -export function BnsGetAllNamespacesResponseToJSON(value?: BnsGetAllNamespacesResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'namespaces': value.namespaces, - }; -} - diff --git a/client/src/generated/models/BnsGetNameInfoResponse.ts b/client/src/generated/models/BnsGetNameInfoResponse.ts deleted file mode 100644 index 0c5e82a2c..000000000 --- a/client/src/generated/models/BnsGetNameInfoResponse.ts +++ /dev/null @@ -1,120 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Get name details - * @export - * @interface BnsGetNameInfoResponse - */ -export interface BnsGetNameInfoResponse { - /** - * - * @type {string} - * @memberof BnsGetNameInfoResponse - */ - address: string; - /** - * - * @type {string} - * @memberof BnsGetNameInfoResponse - */ - blockchain: string; - /** - * - * @type {number} - * @memberof BnsGetNameInfoResponse - */ - expire_block?: number; - /** - * - * @type {number} - * @memberof BnsGetNameInfoResponse - */ - grace_period?: number; - /** - * - * @type {string} - * @memberof BnsGetNameInfoResponse - */ - last_txid: string; - /** - * - * @type {string} - * @memberof BnsGetNameInfoResponse - */ - resolver?: string; - /** - * - * @type {string} - * @memberof BnsGetNameInfoResponse - */ - status: string; - /** - * - * @type {string} - * @memberof BnsGetNameInfoResponse - */ - zonefile: string; - /** - * - * @type {string} - * @memberof BnsGetNameInfoResponse - */ - zonefile_hash: string; -} - -export function BnsGetNameInfoResponseFromJSON(json: any): BnsGetNameInfoResponse { - return BnsGetNameInfoResponseFromJSONTyped(json, false); -} - -export function BnsGetNameInfoResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): BnsGetNameInfoResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'address': json['address'], - 'blockchain': json['blockchain'], - 'expire_block': !exists(json, 'expire_block') ? undefined : json['expire_block'], - 'grace_period': !exists(json, 'grace_period') ? undefined : json['grace_period'], - 'last_txid': json['last_txid'], - 'resolver': !exists(json, 'resolver') ? undefined : json['resolver'], - 'status': json['status'], - 'zonefile': json['zonefile'], - 'zonefile_hash': json['zonefile_hash'], - }; -} - -export function BnsGetNameInfoResponseToJSON(value?: BnsGetNameInfoResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'address': value.address, - 'blockchain': value.blockchain, - 'expire_block': value.expire_block, - 'grace_period': value.grace_period, - 'last_txid': value.last_txid, - 'resolver': value.resolver, - 'status': value.status, - 'zonefile': value.zonefile, - 'zonefile_hash': value.zonefile_hash, - }; -} - diff --git a/client/src/generated/models/BnsGetNamePriceResponse.ts b/client/src/generated/models/BnsGetNamePriceResponse.ts deleted file mode 100644 index 13c03e48a..000000000 --- a/client/src/generated/models/BnsGetNamePriceResponse.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Fetch price for name. - * @export - * @interface BnsGetNamePriceResponse - */ -export interface BnsGetNamePriceResponse { - /** - * - * @type {string} - * @memberof BnsGetNamePriceResponse - */ - units: string; - /** - * - * @type {string} - * @memberof BnsGetNamePriceResponse - */ - amount: string; -} - -export function BnsGetNamePriceResponseFromJSON(json: any): BnsGetNamePriceResponse { - return BnsGetNamePriceResponseFromJSONTyped(json, false); -} - -export function BnsGetNamePriceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): BnsGetNamePriceResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'units': json['units'], - 'amount': json['amount'], - }; -} - -export function BnsGetNamePriceResponseToJSON(value?: BnsGetNamePriceResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'units': value.units, - 'amount': value.amount, - }; -} - diff --git a/client/src/generated/models/BnsGetNamespacePriceResponse.ts b/client/src/generated/models/BnsGetNamespacePriceResponse.ts deleted file mode 100644 index 56f293be2..000000000 --- a/client/src/generated/models/BnsGetNamespacePriceResponse.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Fetch price for namespace. - * @export - * @interface BnsGetNamespacePriceResponse - */ -export interface BnsGetNamespacePriceResponse { - /** - * - * @type {string} - * @memberof BnsGetNamespacePriceResponse - */ - units: string; - /** - * - * @type {string} - * @memberof BnsGetNamespacePriceResponse - */ - amount: string; -} - -export function BnsGetNamespacePriceResponseFromJSON(json: any): BnsGetNamespacePriceResponse { - return BnsGetNamespacePriceResponseFromJSONTyped(json, false); -} - -export function BnsGetNamespacePriceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): BnsGetNamespacePriceResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'units': json['units'], - 'amount': json['amount'], - }; -} - -export function BnsGetNamespacePriceResponseToJSON(value?: BnsGetNamespacePriceResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'units': value.units, - 'amount': value.amount, - }; -} - diff --git a/client/src/generated/models/BnsNamesOwnByAddressResponse.ts b/client/src/generated/models/BnsNamesOwnByAddressResponse.ts deleted file mode 100644 index 9617a59b0..000000000 --- a/client/src/generated/models/BnsNamesOwnByAddressResponse.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Retrieves a list of names owned by the address provided. - * @export - * @interface BnsNamesOwnByAddressResponse - */ -export interface BnsNamesOwnByAddressResponse { - /** - * - * @type {Array} - * @memberof BnsNamesOwnByAddressResponse - */ - names: Array; -} - -export function BnsNamesOwnByAddressResponseFromJSON(json: any): BnsNamesOwnByAddressResponse { - return BnsNamesOwnByAddressResponseFromJSONTyped(json, false); -} - -export function BnsNamesOwnByAddressResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): BnsNamesOwnByAddressResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'names': json['names'], - }; -} - -export function BnsNamesOwnByAddressResponseToJSON(value?: BnsNamesOwnByAddressResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'names': value.names, - }; -} - diff --git a/client/src/generated/models/BurnchainReward.ts b/client/src/generated/models/BurnchainReward.ts deleted file mode 100644 index b605981ce..000000000 --- a/client/src/generated/models/BurnchainReward.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Reward payment made on the burnchain - * @export - * @interface BurnchainReward - */ -export interface BurnchainReward { - /** - * Set to `true` if block corresponds to the canonical burchchain tip - * @type {boolean} - * @memberof BurnchainReward - */ - canonical: boolean; - /** - * The hash representing the burnchain block - * @type {string} - * @memberof BurnchainReward - */ - burn_block_hash: string; - /** - * Height of the burnchain block - * @type {number} - * @memberof BurnchainReward - */ - burn_block_height: number; - /** - * The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin) - * @type {string} - * @memberof BurnchainReward - */ - burn_amount: string; - /** - * The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) - * @type {string} - * @memberof BurnchainReward - */ - reward_recipient: string; - /** - * The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin) - * @type {string} - * @memberof BurnchainReward - */ - reward_amount: string; - /** - * The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block - * @type {number} - * @memberof BurnchainReward - */ - reward_index: number; -} - -export function BurnchainRewardFromJSON(json: any): BurnchainReward { - return BurnchainRewardFromJSONTyped(json, false); -} - -export function BurnchainRewardFromJSONTyped(json: any, ignoreDiscriminator: boolean): BurnchainReward { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'canonical': json['canonical'], - 'burn_block_hash': json['burn_block_hash'], - 'burn_block_height': json['burn_block_height'], - 'burn_amount': json['burn_amount'], - 'reward_recipient': json['reward_recipient'], - 'reward_amount': json['reward_amount'], - 'reward_index': json['reward_index'], - }; -} - -export function BurnchainRewardToJSON(value?: BurnchainReward | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'canonical': value.canonical, - 'burn_block_hash': value.burn_block_hash, - 'burn_block_height': value.burn_block_height, - 'burn_amount': value.burn_amount, - 'reward_recipient': value.reward_recipient, - 'reward_amount': value.reward_amount, - 'reward_index': value.reward_index, - }; -} - diff --git a/client/src/generated/models/BurnchainRewardListResponse.ts b/client/src/generated/models/BurnchainRewardListResponse.ts deleted file mode 100644 index b5cacf3ed..000000000 --- a/client/src/generated/models/BurnchainRewardListResponse.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - BurnchainReward, - BurnchainRewardFromJSON, - BurnchainRewardFromJSONTyped, - BurnchainRewardToJSON, -} from './'; - -/** - * GET request that returns blocks - * @export - * @interface BurnchainRewardListResponse - */ -export interface BurnchainRewardListResponse { - /** - * The number of burnchain rewards to return - * @type {number} - * @memberof BurnchainRewardListResponse - */ - limit: number; - /** - * The number to burnchain rewards to skip (starting at `0`) - * @type {number} - * @memberof BurnchainRewardListResponse - */ - offset: number; - /** - * - * @type {Array} - * @memberof BurnchainRewardListResponse - */ - results: Array; -} - -export function BurnchainRewardListResponseFromJSON(json: any): BurnchainRewardListResponse { - return BurnchainRewardListResponseFromJSONTyped(json, false); -} - -export function BurnchainRewardListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): BurnchainRewardListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'results': ((json['results'] as Array).map(BurnchainRewardFromJSON)), - }; -} - -export function BurnchainRewardListResponseToJSON(value?: BurnchainRewardListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'results': ((value.results as Array).map(BurnchainRewardToJSON)), - }; -} - diff --git a/client/src/generated/models/BurnchainRewardSlotHolder.ts b/client/src/generated/models/BurnchainRewardSlotHolder.ts deleted file mode 100644 index 1963ae1bd..000000000 --- a/client/src/generated/models/BurnchainRewardSlotHolder.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Reward slot holder on the burnchain - * @export - * @interface BurnchainRewardSlotHolder - */ -export interface BurnchainRewardSlotHolder { - /** - * Set to `true` if block corresponds to the canonical burchchain tip - * @type {boolean} - * @memberof BurnchainRewardSlotHolder - */ - canonical: boolean; - /** - * The hash representing the burnchain block - * @type {string} - * @memberof BurnchainRewardSlotHolder - */ - burn_block_hash: string; - /** - * Height of the burnchain block - * @type {number} - * @memberof BurnchainRewardSlotHolder - */ - burn_block_height: number; - /** - * The recipient address that validly received PoX commitments, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) - * @type {string} - * @memberof BurnchainRewardSlotHolder - */ - address: string; - /** - * The index position of the reward entry, useful for ordering when there's more than one slot per burnchain block - * @type {number} - * @memberof BurnchainRewardSlotHolder - */ - slot_index: number; -} - -export function BurnchainRewardSlotHolderFromJSON(json: any): BurnchainRewardSlotHolder { - return BurnchainRewardSlotHolderFromJSONTyped(json, false); -} - -export function BurnchainRewardSlotHolderFromJSONTyped(json: any, ignoreDiscriminator: boolean): BurnchainRewardSlotHolder { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'canonical': json['canonical'], - 'burn_block_hash': json['burn_block_hash'], - 'burn_block_height': json['burn_block_height'], - 'address': json['address'], - 'slot_index': json['slot_index'], - }; -} - -export function BurnchainRewardSlotHolderToJSON(value?: BurnchainRewardSlotHolder | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'canonical': value.canonical, - 'burn_block_hash': value.burn_block_hash, - 'burn_block_height': value.burn_block_height, - 'address': value.address, - 'slot_index': value.slot_index, - }; -} - diff --git a/client/src/generated/models/BurnchainRewardSlotHolderListResponse.ts b/client/src/generated/models/BurnchainRewardSlotHolderListResponse.ts deleted file mode 100644 index 81738f1a2..000000000 --- a/client/src/generated/models/BurnchainRewardSlotHolderListResponse.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - BurnchainRewardSlotHolder, - BurnchainRewardSlotHolderFromJSON, - BurnchainRewardSlotHolderFromJSONTyped, - BurnchainRewardSlotHolderToJSON, -} from './'; - -/** - * GET request that returns reward slot holders - * @export - * @interface BurnchainRewardSlotHolderListResponse - */ -export interface BurnchainRewardSlotHolderListResponse { - /** - * The number of items to return - * @type {number} - * @memberof BurnchainRewardSlotHolderListResponse - */ - limit: number; - /** - * The number of items to skip (starting at `0`) - * @type {number} - * @memberof BurnchainRewardSlotHolderListResponse - */ - offset: number; - /** - * Total number of available items - * @type {number} - * @memberof BurnchainRewardSlotHolderListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof BurnchainRewardSlotHolderListResponse - */ - results: Array; -} - -export function BurnchainRewardSlotHolderListResponseFromJSON(json: any): BurnchainRewardSlotHolderListResponse { - return BurnchainRewardSlotHolderListResponseFromJSONTyped(json, false); -} - -export function BurnchainRewardSlotHolderListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): BurnchainRewardSlotHolderListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': ((json['results'] as Array).map(BurnchainRewardSlotHolderFromJSON)), - }; -} - -export function BurnchainRewardSlotHolderListResponseToJSON(value?: BurnchainRewardSlotHolderListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': ((value.results as Array).map(BurnchainRewardSlotHolderToJSON)), - }; -} - diff --git a/client/src/generated/models/BurnchainRewardsTotal.ts b/client/src/generated/models/BurnchainRewardsTotal.ts deleted file mode 100644 index 69e309a70..000000000 --- a/client/src/generated/models/BurnchainRewardsTotal.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Total burnchain rewards made to a recipient - * @export - * @interface BurnchainRewardsTotal - */ -export interface BurnchainRewardsTotal { - /** - * The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) - * @type {string} - * @memberof BurnchainRewardsTotal - */ - reward_recipient: string; - /** - * The total amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin) - * @type {string} - * @memberof BurnchainRewardsTotal - */ - reward_amount: string; -} - -export function BurnchainRewardsTotalFromJSON(json: any): BurnchainRewardsTotal { - return BurnchainRewardsTotalFromJSONTyped(json, false); -} - -export function BurnchainRewardsTotalFromJSONTyped(json: any, ignoreDiscriminator: boolean): BurnchainRewardsTotal { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'reward_recipient': json['reward_recipient'], - 'reward_amount': json['reward_amount'], - }; -} - -export function BurnchainRewardsTotalToJSON(value?: BurnchainRewardsTotal | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'reward_recipient': value.reward_recipient, - 'reward_amount': value.reward_amount, - }; -} - diff --git a/client/src/generated/models/ChainTip.ts b/client/src/generated/models/ChainTip.ts deleted file mode 100644 index c7b3e00bc..000000000 --- a/client/src/generated/models/ChainTip.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Current chain tip information - * @export - * @interface ChainTip - */ -export interface ChainTip { - /** - * the current block height - * @type {number} - * @memberof ChainTip - */ - block_height: number; - /** - * the current block hash - * @type {string} - * @memberof ChainTip - */ - block_hash: string; - /** - * the current index block hash - * @type {string} - * @memberof ChainTip - */ - index_block_hash: string; - /** - * the current microblock hash - * @type {string} - * @memberof ChainTip - */ - microblock_hash?: string; - /** - * the current microblock sequence number - * @type {number} - * @memberof ChainTip - */ - microblock_sequence?: number; - /** - * the current burn chain block height - * @type {number} - * @memberof ChainTip - */ - burn_block_height: number; -} - -export function ChainTipFromJSON(json: any): ChainTip { - return ChainTipFromJSONTyped(json, false); -} - -export function ChainTipFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChainTip { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'block_height': json['block_height'], - 'block_hash': json['block_hash'], - 'index_block_hash': json['index_block_hash'], - 'microblock_hash': !exists(json, 'microblock_hash') ? undefined : json['microblock_hash'], - 'microblock_sequence': !exists(json, 'microblock_sequence') ? undefined : json['microblock_sequence'], - 'burn_block_height': json['burn_block_height'], - }; -} - -export function ChainTipToJSON(value?: ChainTip | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'block_height': value.block_height, - 'block_hash': value.block_hash, - 'index_block_hash': value.index_block_hash, - 'microblock_hash': value.microblock_hash, - 'microblock_sequence': value.microblock_sequence, - 'burn_block_height': value.burn_block_height, - }; -} - diff --git a/client/src/generated/models/ContractInterfaceResponse.ts b/client/src/generated/models/ContractInterfaceResponse.ts deleted file mode 100644 index 981323e1d..000000000 --- a/client/src/generated/models/ContractInterfaceResponse.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request to get contract interface - * @export - * @interface ContractInterfaceResponse - */ -export interface ContractInterfaceResponse { - /** - * List of defined methods - * @type {Array} - * @memberof ContractInterfaceResponse - */ - functions: Array; - /** - * List of defined variables - * @type {Array} - * @memberof ContractInterfaceResponse - */ - variables: Array; - /** - * List of defined data-maps - * @type {Array} - * @memberof ContractInterfaceResponse - */ - maps: Array; - /** - * List of fungible tokens in the contract - * @type {Array} - * @memberof ContractInterfaceResponse - */ - fungible_tokens: Array; - /** - * List of non-fungible tokens in the contract - * @type {Array} - * @memberof ContractInterfaceResponse - */ - non_fungible_tokens: Array; -} - -export function ContractInterfaceResponseFromJSON(json: any): ContractInterfaceResponse { - return ContractInterfaceResponseFromJSONTyped(json, false); -} - -export function ContractInterfaceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContractInterfaceResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'functions': json['functions'], - 'variables': json['variables'], - 'maps': json['maps'], - 'fungible_tokens': json['fungible_tokens'], - 'non_fungible_tokens': json['non_fungible_tokens'], - }; -} - -export function ContractInterfaceResponseToJSON(value?: ContractInterfaceResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'functions': value.functions, - 'variables': value.variables, - 'maps': value.maps, - 'fungible_tokens': value.fungible_tokens, - 'non_fungible_tokens': value.non_fungible_tokens, - }; -} - diff --git a/client/src/generated/models/ContractListResponse.ts b/client/src/generated/models/ContractListResponse.ts deleted file mode 100644 index af1711e8f..000000000 --- a/client/src/generated/models/ContractListResponse.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - SmartContract, - SmartContractFromJSON, - SmartContractFromJSONTyped, - SmartContractToJSON, -} from './'; - -/** - * GET list of contracts - * @export - * @interface ContractListResponse - */ -export interface ContractListResponse { - /** - * The number of contracts to return - * @type {number} - * @memberof ContractListResponse - */ - limit: number; - /** - * The number to contracts to skip (starting at `0`) - * @type {number} - * @memberof ContractListResponse - */ - offset: number; - /** - * - * @type {Array} - * @memberof ContractListResponse - */ - results: Array; -} - -export function ContractListResponseFromJSON(json: any): ContractListResponse { - return ContractListResponseFromJSONTyped(json, false); -} - -export function ContractListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContractListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'results': ((json['results'] as Array).map(SmartContractFromJSON)), - }; -} - -export function ContractListResponseToJSON(value?: ContractListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'results': ((value.results as Array).map(SmartContractToJSON)), - }; -} - diff --git a/client/src/generated/models/ContractSourceResponse.ts b/client/src/generated/models/ContractSourceResponse.ts deleted file mode 100644 index 2bc9c50fd..000000000 --- a/client/src/generated/models/ContractSourceResponse.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request to get contract source - * @export - * @interface ContractSourceResponse - */ -export interface ContractSourceResponse { - /** - * - * @type {string} - * @memberof ContractSourceResponse - */ - source: string; - /** - * - * @type {number} - * @memberof ContractSourceResponse - */ - publish_height: number; - /** - * - * @type {string} - * @memberof ContractSourceResponse - */ - proof: string; -} - -export function ContractSourceResponseFromJSON(json: any): ContractSourceResponse { - return ContractSourceResponseFromJSONTyped(json, false); -} - -export function ContractSourceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContractSourceResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'source': json['source'], - 'publish_height': json['publish_height'], - 'proof': json['proof'], - }; -} - -export function ContractSourceResponseToJSON(value?: ContractSourceResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'source': value.source, - 'publish_height': value.publish_height, - 'proof': value.proof, - }; -} - diff --git a/client/src/generated/models/CoreNodeInfoResponse.ts b/client/src/generated/models/CoreNodeInfoResponse.ts deleted file mode 100644 index b9fc0597a..000000000 --- a/client/src/generated/models/CoreNodeInfoResponse.ts +++ /dev/null @@ -1,152 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that core node information - * @export - * @interface CoreNodeInfoResponse - */ -export interface CoreNodeInfoResponse { - /** - * identifies the version number for the networking communication, this should not change while a node is running, and will only change if there's an upgrade - * @type {number} - * @memberof CoreNodeInfoResponse - */ - peer_version: number; - /** - * is a hash used to identify the burnchain view for a node. it incorporates bitcoin chain information and PoX information. nodes that disagree on this value will appear to each other as forks. this value will change after every block - * @type {string} - * @memberof CoreNodeInfoResponse - */ - pox_consensus: string; - /** - * latest bitcoin chain height - * @type {number} - * @memberof CoreNodeInfoResponse - */ - burn_block_height: number; - /** - * same as burn_consensus, but evaluated at stable_burn_block_height - * @type {string} - * @memberof CoreNodeInfoResponse - */ - stable_pox_consensus: string; - /** - * leftover from stacks 1.0, basically always burn_block_height - 1 - * @type {number} - * @memberof CoreNodeInfoResponse - */ - stable_burn_block_height: number; - /** - * is a version descriptor - * @type {string} - * @memberof CoreNodeInfoResponse - */ - server_version: string; - /** - * is similar to peer_version and will be used to differentiate between different testnets. this value will be different between mainnet and testnet. once launched, this value will not change - * @type {number} - * @memberof CoreNodeInfoResponse - */ - network_id: number; - /** - * same as network_id, but for bitcoin - * @type {number} - * @memberof CoreNodeInfoResponse - */ - parent_network_id: number; - /** - * the latest Stacks chain height. Stacks forks can occur independent of the Bitcoin chain, that height doesn't increase 1-to-1 with the Bitcoin height - * @type {number} - * @memberof CoreNodeInfoResponse - */ - stacks_tip_height: number; - /** - * the best known block hash for the Stack chain (not including any pending microblocks) - * @type {string} - * @memberof CoreNodeInfoResponse - */ - stacks_tip: string; - /** - * the burn chain (i.e., bitcoin) consensus hash at the time that stacks_tip was mined - * @type {string} - * @memberof CoreNodeInfoResponse - */ - stacks_tip_consensus_hash: string; - /** - * the latest microblock hash if any microblocks were processed. if no microblock has been processed for the current block, a 000.., hex array is returned - * @type {string} - * @memberof CoreNodeInfoResponse - */ - unanchored_tip: string; - /** - * the block height at which the testnet network will be reset. not applicable for mainnet - * @type {number} - * @memberof CoreNodeInfoResponse - */ - exit_at_block_height: number; -} - -export function CoreNodeInfoResponseFromJSON(json: any): CoreNodeInfoResponse { - return CoreNodeInfoResponseFromJSONTyped(json, false); -} - -export function CoreNodeInfoResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): CoreNodeInfoResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'peer_version': json['peer_version'], - 'pox_consensus': json['pox_consensus'], - 'burn_block_height': json['burn_block_height'], - 'stable_pox_consensus': json['stable_pox_consensus'], - 'stable_burn_block_height': json['stable_burn_block_height'], - 'server_version': json['server_version'], - 'network_id': json['network_id'], - 'parent_network_id': json['parent_network_id'], - 'stacks_tip_height': json['stacks_tip_height'], - 'stacks_tip': json['stacks_tip'], - 'stacks_tip_consensus_hash': json['stacks_tip_consensus_hash'], - 'unanchored_tip': json['unanchored_tip'], - 'exit_at_block_height': json['exit_at_block_height'], - }; -} - -export function CoreNodeInfoResponseToJSON(value?: CoreNodeInfoResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'peer_version': value.peer_version, - 'pox_consensus': value.pox_consensus, - 'burn_block_height': value.burn_block_height, - 'stable_pox_consensus': value.stable_pox_consensus, - 'stable_burn_block_height': value.stable_burn_block_height, - 'server_version': value.server_version, - 'network_id': value.network_id, - 'parent_network_id': value.parent_network_id, - 'stacks_tip_height': value.stacks_tip_height, - 'stacks_tip': value.stacks_tip, - 'stacks_tip_consensus_hash': value.stacks_tip_consensus_hash, - 'unanchored_tip': value.unanchored_tip, - 'exit_at_block_height': value.exit_at_block_height, - }; -} - diff --git a/client/src/generated/models/CoreNodePoxResponse.ts b/client/src/generated/models/CoreNodePoxResponse.ts deleted file mode 100644 index 079c566a9..000000000 --- a/client/src/generated/models/CoreNodePoxResponse.ts +++ /dev/null @@ -1,120 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Get Proof of Transfer (PoX) information - * @export - * @interface CoreNodePoxResponse - */ -export interface CoreNodePoxResponse { - /** - * - * @type {string} - * @memberof CoreNodePoxResponse - */ - contract_id: string; - /** - * - * @type {number} - * @memberof CoreNodePoxResponse - */ - first_burnchain_block_height: number; - /** - * - * @type {number} - * @memberof CoreNodePoxResponse - */ - min_amount_ustx: number; - /** - * - * @type {number} - * @memberof CoreNodePoxResponse - */ - registration_window_length: number; - /** - * - * @type {number} - * @memberof CoreNodePoxResponse - */ - rejection_fraction: number; - /** - * - * @type {number} - * @memberof CoreNodePoxResponse - */ - reward_cycle_id: number; - /** - * - * @type {number} - * @memberof CoreNodePoxResponse - */ - reward_cycle_length: number; - /** - * - * @type {number} - * @memberof CoreNodePoxResponse - */ - rejection_votes_left_required: number; - /** - * - * @type {number} - * @memberof CoreNodePoxResponse - */ - total_liquid_supply_ustx: number; -} - -export function CoreNodePoxResponseFromJSON(json: any): CoreNodePoxResponse { - return CoreNodePoxResponseFromJSONTyped(json, false); -} - -export function CoreNodePoxResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): CoreNodePoxResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'contract_id': json['contract_id'], - 'first_burnchain_block_height': json['first_burnchain_block_height'], - 'min_amount_ustx': json['min_amount_ustx'], - 'registration_window_length': json['registration_window_length'], - 'rejection_fraction': json['rejection_fraction'], - 'reward_cycle_id': json['reward_cycle_id'], - 'reward_cycle_length': json['reward_cycle_length'], - 'rejection_votes_left_required': json['rejection_votes_left_required'], - 'total_liquid_supply_ustx': json['total_liquid_supply_ustx'], - }; -} - -export function CoreNodePoxResponseToJSON(value?: CoreNodePoxResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'contract_id': value.contract_id, - 'first_burnchain_block_height': value.first_burnchain_block_height, - 'min_amount_ustx': value.min_amount_ustx, - 'registration_window_length': value.registration_window_length, - 'rejection_fraction': value.rejection_fraction, - 'reward_cycle_id': value.reward_cycle_id, - 'reward_cycle_length': value.reward_cycle_length, - 'rejection_votes_left_required': value.rejection_votes_left_required, - 'total_liquid_supply_ustx': value.total_liquid_supply_ustx, - }; -} - diff --git a/client/src/generated/models/FeeRate.ts b/client/src/generated/models/FeeRate.ts deleted file mode 100644 index 15482f7f4..000000000 --- a/client/src/generated/models/FeeRate.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Get fee rate information. - * @export - * @interface FeeRate - */ -export interface FeeRate { - /** - * - * @type {number} - * @memberof FeeRate - */ - fee_rate: number; -} - -export function FeeRateFromJSON(json: any): FeeRate { - return FeeRateFromJSONTyped(json, false); -} - -export function FeeRateFromJSONTyped(json: any, ignoreDiscriminator: boolean): FeeRate { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'fee_rate': json['fee_rate'], - }; -} - -export function FeeRateToJSON(value?: FeeRate | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'fee_rate': value.fee_rate, - }; -} - diff --git a/client/src/generated/models/FeeRateRequest.ts b/client/src/generated/models/FeeRateRequest.ts deleted file mode 100644 index a98b20acc..000000000 --- a/client/src/generated/models/FeeRateRequest.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Request to fetch fee for a transaction - * @export - * @interface FeeRateRequest - */ -export interface FeeRateRequest { - /** - * A serialized transaction - * @type {string} - * @memberof FeeRateRequest - */ - transaction: string; -} - -export function FeeRateRequestFromJSON(json: any): FeeRateRequest { - return FeeRateRequestFromJSONTyped(json, false); -} - -export function FeeRateRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): FeeRateRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transaction': json['transaction'], - }; -} - -export function FeeRateRequestToJSON(value?: FeeRateRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transaction': value.transaction, - }; -} - diff --git a/client/src/generated/models/FungibleTokenMetadata.ts b/client/src/generated/models/FungibleTokenMetadata.ts deleted file mode 100644 index e83645ec4..000000000 --- a/client/src/generated/models/FungibleTokenMetadata.ts +++ /dev/null @@ -1,120 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface FungibleTokenMetadata - */ -export interface FungibleTokenMetadata { - /** - * An optional string that is a valid URI which resolves to this token's metadata. Can be empty. - * @type {string} - * @memberof FungibleTokenMetadata - */ - token_uri: string; - /** - * Identifies the asset to which this token represents - * @type {string} - * @memberof FungibleTokenMetadata - */ - name: string; - /** - * Describes the asset to which this token represents - * @type {string} - * @memberof FungibleTokenMetadata - */ - description: string; - /** - * A URI pointing to a resource with mime type image/* representing the asset to which this token represents. The API may provide a URI to a cached resource, dependending on configuration. Otherwise, this can be the same value as the canonical image URI. - * @type {string} - * @memberof FungibleTokenMetadata - */ - image_uri: string; - /** - * The original image URI specified by the contract. A URI pointing to a resource with mime type image/* representing the asset to which this token represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive. - * @type {string} - * @memberof FungibleTokenMetadata - */ - image_canonical_uri: string; - /** - * A shorter representation of a token. This is sometimes referred to as a "ticker". Examples: "STX", "COOL", etc. Typically, a token could be referred to as $SYMBOL when referencing it in writing. - * @type {string} - * @memberof FungibleTokenMetadata - */ - symbol: string; - /** - * The number of decimal places in a token. - * @type {number} - * @memberof FungibleTokenMetadata - */ - decimals: number; - /** - * Tx id that deployed the contract - * @type {string} - * @memberof FungibleTokenMetadata - */ - tx_id: string; - /** - * principle that deployed the contract - * @type {string} - * @memberof FungibleTokenMetadata - */ - sender_address: string; -} - -export function FungibleTokenMetadataFromJSON(json: any): FungibleTokenMetadata { - return FungibleTokenMetadataFromJSONTyped(json, false); -} - -export function FungibleTokenMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): FungibleTokenMetadata { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'token_uri': json['token_uri'], - 'name': json['name'], - 'description': json['description'], - 'image_uri': json['image_uri'], - 'image_canonical_uri': json['image_canonical_uri'], - 'symbol': json['symbol'], - 'decimals': json['decimals'], - 'tx_id': json['tx_id'], - 'sender_address': json['sender_address'], - }; -} - -export function FungibleTokenMetadataToJSON(value?: FungibleTokenMetadata | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'token_uri': value.token_uri, - 'name': value.name, - 'description': value.description, - 'image_uri': value.image_uri, - 'image_canonical_uri': value.image_canonical_uri, - 'symbol': value.symbol, - 'decimals': value.decimals, - 'tx_id': value.tx_id, - 'sender_address': value.sender_address, - }; -} - diff --git a/client/src/generated/models/FungibleTokensMetadataList.ts b/client/src/generated/models/FungibleTokensMetadataList.ts deleted file mode 100644 index e9a059f26..000000000 --- a/client/src/generated/models/FungibleTokensMetadataList.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - FungibleTokenMetadata, - FungibleTokenMetadataFromJSON, - FungibleTokenMetadataFromJSONTyped, - FungibleTokenMetadataToJSON, -} from './'; - -/** - * List of fungible tokens metadata - * @export - * @interface FungibleTokensMetadataList - */ -export interface FungibleTokensMetadataList { - /** - * The number of tokens metadata to return - * @type {number} - * @memberof FungibleTokensMetadataList - */ - limit: number; - /** - * The number to tokens metadata to skip (starting at `0`) - * @type {number} - * @memberof FungibleTokensMetadataList - */ - offset: number; - /** - * The number of tokens metadata available - * @type {number} - * @memberof FungibleTokensMetadataList - */ - total: number; - /** - * - * @type {Array} - * @memberof FungibleTokensMetadataList - */ - results: Array; -} - -export function FungibleTokensMetadataListFromJSON(json: any): FungibleTokensMetadataList { - return FungibleTokensMetadataListFromJSONTyped(json, false); -} - -export function FungibleTokensMetadataListFromJSONTyped(json: any, ignoreDiscriminator: boolean): FungibleTokensMetadataList { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': ((json['results'] as Array).map(FungibleTokenMetadataFromJSON)), - }; -} - -export function FungibleTokensMetadataListToJSON(value?: FungibleTokensMetadataList | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': ((value.results as Array).map(FungibleTokenMetadataToJSON)), - }; -} - diff --git a/client/src/generated/models/GetRawTransactionResult.ts b/client/src/generated/models/GetRawTransactionResult.ts deleted file mode 100644 index c43bf4649..000000000 --- a/client/src/generated/models/GetRawTransactionResult.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET raw transaction - * @export - * @interface GetRawTransactionResult - */ -export interface GetRawTransactionResult { - /** - * A hex encoded serialized transaction - * @type {string} - * @memberof GetRawTransactionResult - */ - raw_tx: string; -} - -export function GetRawTransactionResultFromJSON(json: any): GetRawTransactionResult { - return GetRawTransactionResultFromJSONTyped(json, false); -} - -export function GetRawTransactionResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetRawTransactionResult { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'raw_tx': json['raw_tx'], - }; -} - -export function GetRawTransactionResultToJSON(value?: GetRawTransactionResult | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'raw_tx': value.raw_tx, - }; -} - diff --git a/client/src/generated/models/GetStxSupplyLegacyFormatResponse.ts b/client/src/generated/models/GetStxSupplyLegacyFormatResponse.ts deleted file mode 100644 index 4e0aad3d4..000000000 --- a/client/src/generated/models/GetStxSupplyLegacyFormatResponse.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that returns network target block times - * @export - * @interface GetStxSupplyLegacyFormatResponse - */ -export interface GetStxSupplyLegacyFormatResponse { - /** - * String quoted decimal number of the percentage of STX that have unlocked - * @type {string} - * @memberof GetStxSupplyLegacyFormatResponse - */ - unlockedPercent: string; - /** - * String quoted decimal number of the total possible number of STX - * @type {string} - * @memberof GetStxSupplyLegacyFormatResponse - */ - totalStacks: string; - /** - * Same as `totalStacks` but formatted with comma thousands separators - * @type {string} - * @memberof GetStxSupplyLegacyFormatResponse - */ - totalStacksFormatted: string; - /** - * String quoted decimal number of the STX that have been mined or unlocked - * @type {string} - * @memberof GetStxSupplyLegacyFormatResponse - */ - unlockedSupply: string; - /** - * Same as `unlockedSupply` but formatted with comma thousands separators - * @type {string} - * @memberof GetStxSupplyLegacyFormatResponse - */ - unlockedSupplyFormatted: string; - /** - * The block height at which this information was queried - * @type {string} - * @memberof GetStxSupplyLegacyFormatResponse - */ - blockHeight: string; -} - -export function GetStxSupplyLegacyFormatResponseFromJSON(json: any): GetStxSupplyLegacyFormatResponse { - return GetStxSupplyLegacyFormatResponseFromJSONTyped(json, false); -} - -export function GetStxSupplyLegacyFormatResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetStxSupplyLegacyFormatResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'unlockedPercent': json['unlockedPercent'], - 'totalStacks': json['totalStacks'], - 'totalStacksFormatted': json['totalStacksFormatted'], - 'unlockedSupply': json['unlockedSupply'], - 'unlockedSupplyFormatted': json['unlockedSupplyFormatted'], - 'blockHeight': json['blockHeight'], - }; -} - -export function GetStxSupplyLegacyFormatResponseToJSON(value?: GetStxSupplyLegacyFormatResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'unlockedPercent': value.unlockedPercent, - 'totalStacks': value.totalStacks, - 'totalStacksFormatted': value.totalStacksFormatted, - 'unlockedSupply': value.unlockedSupply, - 'unlockedSupplyFormatted': value.unlockedSupplyFormatted, - 'blockHeight': value.blockHeight, - }; -} - diff --git a/client/src/generated/models/GetStxSupplyResponse.ts b/client/src/generated/models/GetStxSupplyResponse.ts deleted file mode 100644 index b9928b3de..000000000 --- a/client/src/generated/models/GetStxSupplyResponse.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that returns network target block times - * @export - * @interface GetStxSupplyResponse - */ -export interface GetStxSupplyResponse { - /** - * String quoted decimal number of the percentage of STX that have unlocked - * @type {string} - * @memberof GetStxSupplyResponse - */ - unlocked_percent: string; - /** - * String quoted decimal number of the total possible number of STX - * @type {string} - * @memberof GetStxSupplyResponse - */ - total_stx: string; - /** - * String quoted decimal number of the STX that have been mined or unlocked - * @type {string} - * @memberof GetStxSupplyResponse - */ - unlocked_stx: string; - /** - * The block height at which this information was queried - * @type {number} - * @memberof GetStxSupplyResponse - */ - block_height: number; -} - -export function GetStxSupplyResponseFromJSON(json: any): GetStxSupplyResponse { - return GetStxSupplyResponseFromJSONTyped(json, false); -} - -export function GetStxSupplyResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetStxSupplyResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'unlocked_percent': json['unlocked_percent'], - 'total_stx': json['total_stx'], - 'unlocked_stx': json['unlocked_stx'], - 'block_height': json['block_height'], - }; -} - -export function GetStxSupplyResponseToJSON(value?: GetStxSupplyResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'unlocked_percent': value.unlocked_percent, - 'total_stx': value.total_stx, - 'unlocked_stx': value.unlocked_stx, - 'block_height': value.block_height, - }; -} - diff --git a/client/src/generated/models/InboundStxTransfer.ts b/client/src/generated/models/InboundStxTransfer.ts deleted file mode 100644 index 4efee836f..000000000 --- a/client/src/generated/models/InboundStxTransfer.ts +++ /dev/null @@ -1,114 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * A inbound STX transfer with a memo - * @export - * @interface InboundStxTransfer - */ -export interface InboundStxTransfer { - /** - * Principal that sent this transfer - * @type {string} - * @memberof InboundStxTransfer - */ - sender: string; - /** - * Transfer amount in micro-STX as integer string - * @type {string} - * @memberof InboundStxTransfer - */ - amount: string; - /** - * Hex encoded memo bytes associated with the transfer - * @type {string} - * @memberof InboundStxTransfer - */ - memo: string; - /** - * Block height at which this transfer occurred - * @type {number} - * @memberof InboundStxTransfer - */ - block_height: number; - /** - * The transaction ID in which this transfer occurred - * @type {string} - * @memberof InboundStxTransfer - */ - tx_id: string; - /** - * Indicates if the transfer is from a stx-transfer transaction or a contract-call transaction - * @type {string} - * @memberof InboundStxTransfer - */ - transfer_type: InboundStxTransferTransferTypeEnum; - /** - * Index of the transaction within a block - * @type {number} - * @memberof InboundStxTransfer - */ - tx_index: number; -} - -/** -* @export -* @enum {string} -*/ -export enum InboundStxTransferTransferTypeEnum { - bulk_send = 'bulk-send', - stx_transfer = 'stx-transfer', - stx_transfer_memo = 'stx-transfer-memo' -} - -export function InboundStxTransferFromJSON(json: any): InboundStxTransfer { - return InboundStxTransferFromJSONTyped(json, false); -} - -export function InboundStxTransferFromJSONTyped(json: any, ignoreDiscriminator: boolean): InboundStxTransfer { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'sender': json['sender'], - 'amount': json['amount'], - 'memo': json['memo'], - 'block_height': json['block_height'], - 'tx_id': json['tx_id'], - 'transfer_type': json['transfer_type'], - 'tx_index': json['tx_index'], - }; -} - -export function InboundStxTransferToJSON(value?: InboundStxTransfer | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'sender': value.sender, - 'amount': value.amount, - 'memo': value.memo, - 'block_height': value.block_height, - 'tx_id': value.tx_id, - 'transfer_type': value.transfer_type, - 'tx_index': value.tx_index, - }; -} - diff --git a/client/src/generated/models/InlineObject.ts b/client/src/generated/models/InlineObject.ts deleted file mode 100644 index 1ce31af82..000000000 --- a/client/src/generated/models/InlineObject.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface InlineObject - */ -export interface InlineObject { - /** - * BTC testnet address - * @type {string} - * @memberof InlineObject - */ - address?: string; -} - -export function InlineObjectFromJSON(json: any): InlineObject { - return InlineObjectFromJSONTyped(json, false); -} - -export function InlineObjectFromJSONTyped(json: any, ignoreDiscriminator: boolean): InlineObject { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'address': !exists(json, 'address') ? undefined : json['address'], - }; -} - -export function InlineObjectToJSON(value?: InlineObject | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'address': value.address, - }; -} - diff --git a/client/src/generated/models/InlineResponse403.ts b/client/src/generated/models/InlineResponse403.ts deleted file mode 100644 index 7e8bbd433..000000000 --- a/client/src/generated/models/InlineResponse403.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface InlineResponse403 - */ -export interface InlineResponse403 { - /** - * - * @type {string} - * @memberof InlineResponse403 - */ - error?: string; - /** - * - * @type {boolean} - * @memberof InlineResponse403 - */ - success?: boolean; -} - -export function InlineResponse403FromJSON(json: any): InlineResponse403 { - return InlineResponse403FromJSONTyped(json, false); -} - -export function InlineResponse403FromJSONTyped(json: any, ignoreDiscriminator: boolean): InlineResponse403 { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'error': !exists(json, 'error') ? undefined : json['error'], - 'success': !exists(json, 'success') ? undefined : json['success'], - }; -} - -export function InlineResponse403ToJSON(value?: InlineResponse403 | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'error': value.error, - 'success': value.success, - }; -} - diff --git a/client/src/generated/models/MapEntryResponse.ts b/client/src/generated/models/MapEntryResponse.ts deleted file mode 100644 index 7a709eb57..000000000 --- a/client/src/generated/models/MapEntryResponse.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Response of get data map entry request - * @export - * @interface MapEntryResponse - */ -export interface MapEntryResponse { - /** - * Hex-encoded string of clarity value. It is always an optional tuple. - * @type {string} - * @memberof MapEntryResponse - */ - data: string; - /** - * Hex-encoded string of the MARF proof for the data - * @type {string} - * @memberof MapEntryResponse - */ - proof?: string; -} - -export function MapEntryResponseFromJSON(json: any): MapEntryResponse { - return MapEntryResponseFromJSONTyped(json, false); -} - -export function MapEntryResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapEntryResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'data': json['data'], - 'proof': !exists(json, 'proof') ? undefined : json['proof'], - }; -} - -export function MapEntryResponseToJSON(value?: MapEntryResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'data': value.data, - 'proof': value.proof, - }; -} - diff --git a/client/src/generated/models/MempoolFeePriorities.ts b/client/src/generated/models/MempoolFeePriorities.ts deleted file mode 100644 index f59cd3ce9..000000000 --- a/client/src/generated/models/MempoolFeePriorities.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - MempoolFeePrioritiesAll, - MempoolFeePrioritiesAllFromJSON, - MempoolFeePrioritiesAllFromJSONTyped, - MempoolFeePrioritiesAllToJSON, -} from './'; - -/** - * GET request that returns fee priorities from mempool transactions - * @export - * @interface MempoolFeePriorities - */ -export interface MempoolFeePriorities { - /** - * - * @type {MempoolFeePrioritiesAll} - * @memberof MempoolFeePriorities - */ - all: MempoolFeePrioritiesAll; - /** - * - * @type {MempoolFeePrioritiesAll} - * @memberof MempoolFeePriorities - */ - token_transfer?: MempoolFeePrioritiesAll; - /** - * - * @type {MempoolFeePrioritiesAll} - * @memberof MempoolFeePriorities - */ - smart_contract?: MempoolFeePrioritiesAll; - /** - * - * @type {MempoolFeePrioritiesAll} - * @memberof MempoolFeePriorities - */ - contract_call?: MempoolFeePrioritiesAll; -} - -export function MempoolFeePrioritiesFromJSON(json: any): MempoolFeePriorities { - return MempoolFeePrioritiesFromJSONTyped(json, false); -} - -export function MempoolFeePrioritiesFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolFeePriorities { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'all': MempoolFeePrioritiesAllFromJSON(json['all']), - 'token_transfer': !exists(json, 'token_transfer') ? undefined : MempoolFeePrioritiesAllFromJSON(json['token_transfer']), - 'smart_contract': !exists(json, 'smart_contract') ? undefined : MempoolFeePrioritiesAllFromJSON(json['smart_contract']), - 'contract_call': !exists(json, 'contract_call') ? undefined : MempoolFeePrioritiesAllFromJSON(json['contract_call']), - }; -} - -export function MempoolFeePrioritiesToJSON(value?: MempoolFeePriorities | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'all': MempoolFeePrioritiesAllToJSON(value.all), - 'token_transfer': MempoolFeePrioritiesAllToJSON(value.token_transfer), - 'smart_contract': MempoolFeePrioritiesAllToJSON(value.smart_contract), - 'contract_call': MempoolFeePrioritiesAllToJSON(value.contract_call), - }; -} - diff --git a/client/src/generated/models/MempoolFeePrioritiesAll.ts b/client/src/generated/models/MempoolFeePrioritiesAll.ts deleted file mode 100644 index ff361674b..000000000 --- a/client/src/generated/models/MempoolFeePrioritiesAll.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface MempoolFeePrioritiesAll - */ -export interface MempoolFeePrioritiesAll { - /** - * - * @type {number} - * @memberof MempoolFeePrioritiesAll - */ - no_priority: number; - /** - * - * @type {number} - * @memberof MempoolFeePrioritiesAll - */ - low_priority: number; - /** - * - * @type {number} - * @memberof MempoolFeePrioritiesAll - */ - medium_priority: number; - /** - * - * @type {number} - * @memberof MempoolFeePrioritiesAll - */ - high_priority: number; -} - -export function MempoolFeePrioritiesAllFromJSON(json: any): MempoolFeePrioritiesAll { - return MempoolFeePrioritiesAllFromJSONTyped(json, false); -} - -export function MempoolFeePrioritiesAllFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolFeePrioritiesAll { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'no_priority': json['no_priority'], - 'low_priority': json['low_priority'], - 'medium_priority': json['medium_priority'], - 'high_priority': json['high_priority'], - }; -} - -export function MempoolFeePrioritiesAllToJSON(value?: MempoolFeePrioritiesAll | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'no_priority': value.no_priority, - 'low_priority': value.low_priority, - 'medium_priority': value.medium_priority, - 'high_priority': value.high_priority, - }; -} - diff --git a/client/src/generated/models/MempoolTransactionListResponse.ts b/client/src/generated/models/MempoolTransactionListResponse.ts deleted file mode 100644 index c83255634..000000000 --- a/client/src/generated/models/MempoolTransactionListResponse.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that returns transactions - * @export - * @interface MempoolTransactionListResponse - */ -export interface MempoolTransactionListResponse { - /** - * - * @type {number} - * @memberof MempoolTransactionListResponse - */ - limit: number; - /** - * - * @type {number} - * @memberof MempoolTransactionListResponse - */ - offset: number; - /** - * - * @type {number} - * @memberof MempoolTransactionListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof MempoolTransactionListResponse - */ - results: Array; -} - -export function MempoolTransactionListResponseFromJSON(json: any): MempoolTransactionListResponse { - return MempoolTransactionListResponseFromJSONTyped(json, false); -} - -export function MempoolTransactionListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolTransactionListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': json['results'], - }; -} - -export function MempoolTransactionListResponseToJSON(value?: MempoolTransactionListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/MempoolTransactionStatsResponse.ts b/client/src/generated/models/MempoolTransactionStatsResponse.ts deleted file mode 100644 index 42c0a2861..000000000 --- a/client/src/generated/models/MempoolTransactionStatsResponse.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - MempoolTransactionStatsResponseTxAges, - MempoolTransactionStatsResponseTxAgesFromJSON, - MempoolTransactionStatsResponseTxAgesFromJSONTyped, - MempoolTransactionStatsResponseTxAgesToJSON, - MempoolTransactionStatsResponseTxByteSizes, - MempoolTransactionStatsResponseTxByteSizesFromJSON, - MempoolTransactionStatsResponseTxByteSizesFromJSONTyped, - MempoolTransactionStatsResponseTxByteSizesToJSON, - MempoolTransactionStatsResponseTxSimpleFeeAverages, - MempoolTransactionStatsResponseTxSimpleFeeAveragesFromJSON, - MempoolTransactionStatsResponseTxSimpleFeeAveragesFromJSONTyped, - MempoolTransactionStatsResponseTxSimpleFeeAveragesToJSON, - MempoolTransactionStatsResponseTxTypeCounts, - MempoolTransactionStatsResponseTxTypeCountsFromJSON, - MempoolTransactionStatsResponseTxTypeCountsFromJSONTyped, - MempoolTransactionStatsResponseTxTypeCountsToJSON, -} from './'; - -/** - * GET request that returns stats on mempool transactions - * @export - * @interface MempoolTransactionStatsResponse - */ -export interface MempoolTransactionStatsResponse { - /** - * - * @type {MempoolTransactionStatsResponseTxTypeCounts} - * @memberof MempoolTransactionStatsResponse - */ - tx_type_counts: MempoolTransactionStatsResponseTxTypeCounts; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAverages} - * @memberof MempoolTransactionStatsResponse - */ - tx_simple_fee_averages: MempoolTransactionStatsResponseTxSimpleFeeAverages; - /** - * - * @type {MempoolTransactionStatsResponseTxAges} - * @memberof MempoolTransactionStatsResponse - */ - tx_ages: MempoolTransactionStatsResponseTxAges; - /** - * - * @type {MempoolTransactionStatsResponseTxByteSizes} - * @memberof MempoolTransactionStatsResponse - */ - tx_byte_sizes: MempoolTransactionStatsResponseTxByteSizes; -} - -export function MempoolTransactionStatsResponseFromJSON(json: any): MempoolTransactionStatsResponse { - return MempoolTransactionStatsResponseFromJSONTyped(json, false); -} - -export function MempoolTransactionStatsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolTransactionStatsResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'tx_type_counts': MempoolTransactionStatsResponseTxTypeCountsFromJSON(json['tx_type_counts']), - 'tx_simple_fee_averages': MempoolTransactionStatsResponseTxSimpleFeeAveragesFromJSON(json['tx_simple_fee_averages']), - 'tx_ages': MempoolTransactionStatsResponseTxAgesFromJSON(json['tx_ages']), - 'tx_byte_sizes': MempoolTransactionStatsResponseTxByteSizesFromJSON(json['tx_byte_sizes']), - }; -} - -export function MempoolTransactionStatsResponseToJSON(value?: MempoolTransactionStatsResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'tx_type_counts': MempoolTransactionStatsResponseTxTypeCountsToJSON(value.tx_type_counts), - 'tx_simple_fee_averages': MempoolTransactionStatsResponseTxSimpleFeeAveragesToJSON(value.tx_simple_fee_averages), - 'tx_ages': MempoolTransactionStatsResponseTxAgesToJSON(value.tx_ages), - 'tx_byte_sizes': MempoolTransactionStatsResponseTxByteSizesToJSON(value.tx_byte_sizes), - }; -} - diff --git a/client/src/generated/models/MempoolTransactionStatsResponseTxAges.ts b/client/src/generated/models/MempoolTransactionStatsResponseTxAges.ts deleted file mode 100644 index 46e2ba5d2..000000000 --- a/client/src/generated/models/MempoolTransactionStatsResponseTxAges.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSONTyped, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON, -} from './'; - -/** - * The average time (in blocks) that transactions have lived in the mempool. The start block height is simply the current chain-tip of when the attached Stacks node receives the transaction. This timing can be different across Stacks nodes / API instances due to propagation timing differences in the p2p network. - * @export - * @interface MempoolTransactionStatsResponseTxAges - */ -export interface MempoolTransactionStatsResponseTxAges { - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxAges - */ - token_transfer: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxAges - */ - smart_contract: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxAges - */ - contract_call: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxAges - */ - poison_microblock: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; -} - -export function MempoolTransactionStatsResponseTxAgesFromJSON(json: any): MempoolTransactionStatsResponseTxAges { - return MempoolTransactionStatsResponseTxAgesFromJSONTyped(json, false); -} - -export function MempoolTransactionStatsResponseTxAgesFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolTransactionStatsResponseTxAges { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'token_transfer': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['token_transfer']), - 'smart_contract': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['smart_contract']), - 'contract_call': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['contract_call']), - 'poison_microblock': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['poison_microblock']), - }; -} - -export function MempoolTransactionStatsResponseTxAgesToJSON(value?: MempoolTransactionStatsResponseTxAges | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'token_transfer': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.token_transfer), - 'smart_contract': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.smart_contract), - 'contract_call': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.contract_call), - 'poison_microblock': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.poison_microblock), - }; -} - diff --git a/client/src/generated/models/MempoolTransactionStatsResponseTxByteSizes.ts b/client/src/generated/models/MempoolTransactionStatsResponseTxByteSizes.ts deleted file mode 100644 index 7978098c5..000000000 --- a/client/src/generated/models/MempoolTransactionStatsResponseTxByteSizes.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSONTyped, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON, -} from './'; - -/** - * The average byte size of transactions in the mempool, broken down by transaction type. - * @export - * @interface MempoolTransactionStatsResponseTxByteSizes - */ -export interface MempoolTransactionStatsResponseTxByteSizes { - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxByteSizes - */ - token_transfer: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxByteSizes - */ - smart_contract: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxByteSizes - */ - contract_call: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxByteSizes - */ - poison_microblock: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; -} - -export function MempoolTransactionStatsResponseTxByteSizesFromJSON(json: any): MempoolTransactionStatsResponseTxByteSizes { - return MempoolTransactionStatsResponseTxByteSizesFromJSONTyped(json, false); -} - -export function MempoolTransactionStatsResponseTxByteSizesFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolTransactionStatsResponseTxByteSizes { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'token_transfer': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['token_transfer']), - 'smart_contract': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['smart_contract']), - 'contract_call': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['contract_call']), - 'poison_microblock': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['poison_microblock']), - }; -} - -export function MempoolTransactionStatsResponseTxByteSizesToJSON(value?: MempoolTransactionStatsResponseTxByteSizes | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'token_transfer': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.token_transfer), - 'smart_contract': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.smart_contract), - 'contract_call': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.contract_call), - 'poison_microblock': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.poison_microblock), - }; -} - diff --git a/client/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.ts b/client/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.ts deleted file mode 100644 index 567b4242c..000000000 --- a/client/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAverages.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSONTyped, - MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON, -} from './'; - -/** - * The simple mean (average) transaction fee, broken down by transaction type. Note that this does not factor in actual execution costs. The average fee is not a reliable metric for calculating a fee for a new transaction. - * @export - * @interface MempoolTransactionStatsResponseTxSimpleFeeAverages - */ -export interface MempoolTransactionStatsResponseTxSimpleFeeAverages { - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxSimpleFeeAverages - */ - token_transfer: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxSimpleFeeAverages - */ - smart_contract: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxSimpleFeeAverages - */ - contract_call: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; - /** - * - * @type {MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer} - * @memberof MempoolTransactionStatsResponseTxSimpleFeeAverages - */ - poison_microblock: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer; -} - -export function MempoolTransactionStatsResponseTxSimpleFeeAveragesFromJSON(json: any): MempoolTransactionStatsResponseTxSimpleFeeAverages { - return MempoolTransactionStatsResponseTxSimpleFeeAveragesFromJSONTyped(json, false); -} - -export function MempoolTransactionStatsResponseTxSimpleFeeAveragesFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolTransactionStatsResponseTxSimpleFeeAverages { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'token_transfer': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['token_transfer']), - 'smart_contract': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['smart_contract']), - 'contract_call': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['contract_call']), - 'poison_microblock': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json['poison_microblock']), - }; -} - -export function MempoolTransactionStatsResponseTxSimpleFeeAveragesToJSON(value?: MempoolTransactionStatsResponseTxSimpleFeeAverages | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'token_transfer': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.token_transfer), - 'smart_contract': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.smart_contract), - 'contract_call': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.contract_call), - 'poison_microblock': MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value.poison_microblock), - }; -} - diff --git a/client/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.ts b/client/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.ts deleted file mode 100644 index b1fb3a49b..000000000 --- a/client/src/generated/models/MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer - */ -export interface MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer { - /** - * - * @type {number} - * @memberof MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer - */ - p25: number | null; - /** - * - * @type {number} - * @memberof MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer - */ - p50: number | null; - /** - * - * @type {number} - * @memberof MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer - */ - p75: number | null; - /** - * - * @type {number} - * @memberof MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer - */ - p95: number | null; -} - -export function MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSON(json: any): MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer { - return MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSONTyped(json, false); -} - -export function MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'p25': json['p25'], - 'p50': json['p50'], - 'p75': json['p75'], - 'p95': json['p95'], - }; -} - -export function MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransferToJSON(value?: MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'p25': value.p25, - 'p50': value.p50, - 'p75': value.p75, - 'p95': value.p95, - }; -} - diff --git a/client/src/generated/models/MempoolTransactionStatsResponseTxTypeCounts.ts b/client/src/generated/models/MempoolTransactionStatsResponseTxTypeCounts.ts deleted file mode 100644 index 4527e4b90..000000000 --- a/client/src/generated/models/MempoolTransactionStatsResponseTxTypeCounts.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Number of tranasction in the mempool, broken down by transaction type. - * @export - * @interface MempoolTransactionStatsResponseTxTypeCounts - */ -export interface MempoolTransactionStatsResponseTxTypeCounts { - /** - * - * @type {number} - * @memberof MempoolTransactionStatsResponseTxTypeCounts - */ - token_transfer: number; - /** - * - * @type {number} - * @memberof MempoolTransactionStatsResponseTxTypeCounts - */ - smart_contract: number; - /** - * - * @type {number} - * @memberof MempoolTransactionStatsResponseTxTypeCounts - */ - contract_call: number; - /** - * - * @type {number} - * @memberof MempoolTransactionStatsResponseTxTypeCounts - */ - poison_microblock: number; -} - -export function MempoolTransactionStatsResponseTxTypeCountsFromJSON(json: any): MempoolTransactionStatsResponseTxTypeCounts { - return MempoolTransactionStatsResponseTxTypeCountsFromJSONTyped(json, false); -} - -export function MempoolTransactionStatsResponseTxTypeCountsFromJSONTyped(json: any, ignoreDiscriminator: boolean): MempoolTransactionStatsResponseTxTypeCounts { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'token_transfer': json['token_transfer'], - 'smart_contract': json['smart_contract'], - 'contract_call': json['contract_call'], - 'poison_microblock': json['poison_microblock'], - }; -} - -export function MempoolTransactionStatsResponseTxTypeCountsToJSON(value?: MempoolTransactionStatsResponseTxTypeCounts | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'token_transfer': value.token_transfer, - 'smart_contract': value.smart_contract, - 'contract_call': value.contract_call, - 'poison_microblock': value.poison_microblock, - }; -} - diff --git a/client/src/generated/models/Microblock.ts b/client/src/generated/models/Microblock.ts deleted file mode 100644 index ecafb1782..000000000 --- a/client/src/generated/models/Microblock.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * A microblock - * @export - * @interface Microblock - */ -export interface Microblock { - /** - * Set to `true` if the microblock corresponds to the canonical chain tip. - * @type {boolean} - * @memberof Microblock - */ - canonical: boolean; - /** - * Set to `true` if the microblock was not orphaned in a following anchor block. Defaults to `true` if the following anchor block has not yet been created. - * @type {boolean} - * @memberof Microblock - */ - microblock_canonical: boolean; - /** - * The SHA512/256 hash of this microblock. - * @type {string} - * @memberof Microblock - */ - microblock_hash: string; - /** - * A hint to describe how to order a set of microblocks. Starts at 0. - * @type {number} - * @memberof Microblock - */ - microblock_sequence: number; - /** - * The SHA512/256 hash of the previous signed microblock in this stream. - * @type {string} - * @memberof Microblock - */ - microblock_parent_hash: string; - /** - * The anchor block height that confirmed this microblock. - * @type {number} - * @memberof Microblock - */ - block_height: number; - /** - * The height of the anchor block that preceded this microblock. - * @type {number} - * @memberof Microblock - */ - parent_block_height: number; - /** - * The hash of the anchor block that preceded this microblock. - * @type {string} - * @memberof Microblock - */ - parent_block_hash: string; - /** - * The hash of the Bitcoin block that preceded this microblock. - * @type {string} - * @memberof Microblock - */ - parent_burn_block_hash: string; - /** - * The block timestamp of the Bitcoin block that preceded this microblock. - * @type {number} - * @memberof Microblock - */ - parent_burn_block_time: number; - /** - * The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the bitcoin block that preceded this microblock. - * @type {string} - * @memberof Microblock - */ - parent_burn_block_time_iso: string; - /** - * The height of the Bitcoin block that preceded this microblock. - * @type {number} - * @memberof Microblock - */ - parent_burn_block_height: number; - /** - * The hash of the anchor block that confirmed this microblock. This wil be empty for unanchored microblocks - * @type {string} - * @memberof Microblock - */ - block_hash: string | null; - /** - * List of transactions included in the microblock - * @type {Array} - * @memberof Microblock - */ - txs: Array; -} - -export function MicroblockFromJSON(json: any): Microblock { - return MicroblockFromJSONTyped(json, false); -} - -export function MicroblockFromJSONTyped(json: any, ignoreDiscriminator: boolean): Microblock { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'canonical': json['canonical'], - 'microblock_canonical': json['microblock_canonical'], - 'microblock_hash': json['microblock_hash'], - 'microblock_sequence': json['microblock_sequence'], - 'microblock_parent_hash': json['microblock_parent_hash'], - 'block_height': json['block_height'], - 'parent_block_height': json['parent_block_height'], - 'parent_block_hash': json['parent_block_hash'], - 'parent_burn_block_hash': json['parent_burn_block_hash'], - 'parent_burn_block_time': json['parent_burn_block_time'], - 'parent_burn_block_time_iso': json['parent_burn_block_time_iso'], - 'parent_burn_block_height': json['parent_burn_block_height'], - 'block_hash': json['block_hash'], - 'txs': json['txs'], - }; -} - -export function MicroblockToJSON(value?: Microblock | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'canonical': value.canonical, - 'microblock_canonical': value.microblock_canonical, - 'microblock_hash': value.microblock_hash, - 'microblock_sequence': value.microblock_sequence, - 'microblock_parent_hash': value.microblock_parent_hash, - 'block_height': value.block_height, - 'parent_block_height': value.parent_block_height, - 'parent_block_hash': value.parent_block_hash, - 'parent_burn_block_hash': value.parent_burn_block_hash, - 'parent_burn_block_time': value.parent_burn_block_time, - 'parent_burn_block_time_iso': value.parent_burn_block_time_iso, - 'parent_burn_block_height': value.parent_burn_block_height, - 'block_hash': value.block_hash, - 'txs': value.txs, - }; -} - diff --git a/client/src/generated/models/MicroblockListResponse.ts b/client/src/generated/models/MicroblockListResponse.ts deleted file mode 100644 index 70865e8f6..000000000 --- a/client/src/generated/models/MicroblockListResponse.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - Microblock, - MicroblockFromJSON, - MicroblockFromJSONTyped, - MicroblockToJSON, -} from './'; - -/** - * GET request that returns microblocks - * @export - * @interface MicroblockListResponse - */ -export interface MicroblockListResponse { - /** - * The number of microblocks to return - * @type {number} - * @memberof MicroblockListResponse - */ - limit: number; - /** - * The number to microblocks to skip (starting at `0`) - * @type {number} - * @memberof MicroblockListResponse - */ - offset: number; - /** - * The number of microblocks available - * @type {number} - * @memberof MicroblockListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof MicroblockListResponse - */ - results: Array; -} - -export function MicroblockListResponseFromJSON(json: any): MicroblockListResponse { - return MicroblockListResponseFromJSONTyped(json, false); -} - -export function MicroblockListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): MicroblockListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': ((json['results'] as Array).map(MicroblockFromJSON)), - }; -} - -export function MicroblockListResponseToJSON(value?: MicroblockListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': ((value.results as Array).map(MicroblockToJSON)), - }; -} - diff --git a/client/src/generated/models/NetworkBlockTimeResponse.ts b/client/src/generated/models/NetworkBlockTimeResponse.ts deleted file mode 100644 index 245838cb9..000000000 --- a/client/src/generated/models/NetworkBlockTimeResponse.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that target block time for a given network - * @export - * @interface NetworkBlockTimeResponse - */ -export interface NetworkBlockTimeResponse { - /** - * - * @type {number} - * @memberof NetworkBlockTimeResponse - */ - target_block_time: number; -} - -export function NetworkBlockTimeResponseFromJSON(json: any): NetworkBlockTimeResponse { - return NetworkBlockTimeResponseFromJSONTyped(json, false); -} - -export function NetworkBlockTimeResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): NetworkBlockTimeResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'target_block_time': json['target_block_time'], - }; -} - -export function NetworkBlockTimeResponseToJSON(value?: NetworkBlockTimeResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'target_block_time': value.target_block_time, - }; -} - diff --git a/client/src/generated/models/NetworkBlockTimesResponse.ts b/client/src/generated/models/NetworkBlockTimesResponse.ts deleted file mode 100644 index 2471adcbb..000000000 --- a/client/src/generated/models/NetworkBlockTimesResponse.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - TargetBlockTime, - TargetBlockTimeFromJSON, - TargetBlockTimeFromJSONTyped, - TargetBlockTimeToJSON, -} from './'; - -/** - * GET request that returns network target block times - * @export - * @interface NetworkBlockTimesResponse - */ -export interface NetworkBlockTimesResponse { - /** - * - * @type {TargetBlockTime} - * @memberof NetworkBlockTimesResponse - */ - mainnet: TargetBlockTime; - /** - * - * @type {TargetBlockTime} - * @memberof NetworkBlockTimesResponse - */ - testnet: TargetBlockTime; -} - -export function NetworkBlockTimesResponseFromJSON(json: any): NetworkBlockTimesResponse { - return NetworkBlockTimesResponseFromJSONTyped(json, false); -} - -export function NetworkBlockTimesResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): NetworkBlockTimesResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'mainnet': TargetBlockTimeFromJSON(json['mainnet']), - 'testnet': TargetBlockTimeFromJSON(json['testnet']), - }; -} - -export function NetworkBlockTimesResponseToJSON(value?: NetworkBlockTimesResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'mainnet': TargetBlockTimeToJSON(value.mainnet), - 'testnet': TargetBlockTimeToJSON(value.testnet), - }; -} - diff --git a/client/src/generated/models/NetworkIdentifier.ts b/client/src/generated/models/NetworkIdentifier.ts deleted file mode 100644 index cb5dacde6..000000000 --- a/client/src/generated/models/NetworkIdentifier.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaNetworkListResponseSubNetworkIdentifier, - RosettaNetworkListResponseSubNetworkIdentifierFromJSON, - RosettaNetworkListResponseSubNetworkIdentifierFromJSONTyped, - RosettaNetworkListResponseSubNetworkIdentifierToJSON, -} from './'; - -/** - * The network_identifier specifies which network a particular object is associated with. - * @export - * @interface NetworkIdentifier - */ -export interface NetworkIdentifier { - /** - * Blockchain name - * @type {string} - * @memberof NetworkIdentifier - */ - blockchain: string; - /** - * If a blockchain has a specific chain-id or network identifier, it should go in this field. It is up to the client to determine which network-specific identifier is mainnet or testnet. - * @type {string} - * @memberof NetworkIdentifier - */ - network: string; - /** - * - * @type {RosettaNetworkListResponseSubNetworkIdentifier} - * @memberof NetworkIdentifier - */ - sub_network_identifier?: RosettaNetworkListResponseSubNetworkIdentifier; -} - -export function NetworkIdentifierFromJSON(json: any): NetworkIdentifier { - return NetworkIdentifierFromJSONTyped(json, false); -} - -export function NetworkIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): NetworkIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'blockchain': json['blockchain'], - 'network': json['network'], - 'sub_network_identifier': !exists(json, 'sub_network_identifier') ? undefined : RosettaNetworkListResponseSubNetworkIdentifierFromJSON(json['sub_network_identifier']), - }; -} - -export function NetworkIdentifierToJSON(value?: NetworkIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'blockchain': value.blockchain, - 'network': value.network, - 'sub_network_identifier': RosettaNetworkListResponseSubNetworkIdentifierToJSON(value.sub_network_identifier), - }; -} - diff --git a/client/src/generated/models/NftEvent.ts b/client/src/generated/models/NftEvent.ts deleted file mode 100644 index d6b73f8ba..000000000 --- a/client/src/generated/models/NftEvent.ts +++ /dev/null @@ -1,127 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - AddressNftListResponseValue, - AddressNftListResponseValueFromJSON, - AddressNftListResponseValueFromJSONTyped, - AddressNftListResponseValueToJSON, -} from './'; - -/** - * - * @export - * @interface NftEvent - */ -export interface NftEvent { - /** - * - * @type {string} - * @memberof NftEvent - */ - sender?: string; - /** - * - * @type {string} - * @memberof NftEvent - */ - recipient?: string; - /** - * - * @type {string} - * @memberof NftEvent - */ - asset_identifier: string; - /** - * - * @type {string} - * @memberof NftEvent - */ - asset_event_type: string; - /** - * - * @type {AddressNftListResponseValue} - * @memberof NftEvent - */ - value: AddressNftListResponseValue; - /** - * - * @type {string} - * @memberof NftEvent - */ - tx_id: string; - /** - * - * @type {number} - * @memberof NftEvent - */ - tx_index: number; - /** - * - * @type {number} - * @memberof NftEvent - */ - block_height: number; - /** - * - * @type {number} - * @memberof NftEvent - */ - event_index: number; -} - -export function NftEventFromJSON(json: any): NftEvent { - return NftEventFromJSONTyped(json, false); -} - -export function NftEventFromJSONTyped(json: any, ignoreDiscriminator: boolean): NftEvent { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'sender': !exists(json, 'sender') ? undefined : json['sender'], - 'recipient': !exists(json, 'recipient') ? undefined : json['recipient'], - 'asset_identifier': json['asset_identifier'], - 'asset_event_type': json['asset_event_type'], - 'value': AddressNftListResponseValueFromJSON(json['value']), - 'tx_id': json['tx_id'], - 'tx_index': json['tx_index'], - 'block_height': json['block_height'], - 'event_index': json['event_index'], - }; -} - -export function NftEventToJSON(value?: NftEvent | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'sender': value.sender, - 'recipient': value.recipient, - 'asset_identifier': value.asset_identifier, - 'asset_event_type': value.asset_event_type, - 'value': AddressNftListResponseValueToJSON(value.value), - 'tx_id': value.tx_id, - 'tx_index': value.tx_index, - 'block_height': value.block_height, - 'event_index': value.event_index, - }; -} - diff --git a/client/src/generated/models/NonFungibleTokenHistoryEventList.ts b/client/src/generated/models/NonFungibleTokenHistoryEventList.ts deleted file mode 100644 index bfbbd26d9..000000000 --- a/client/src/generated/models/NonFungibleTokenHistoryEventList.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * List of Non-Fungible Token history events - * @export - * @interface NonFungibleTokenHistoryEventList - */ -export interface NonFungibleTokenHistoryEventList { - /** - * The number of events to return - * @type {number} - * @memberof NonFungibleTokenHistoryEventList - */ - limit: number; - /** - * The number to events to skip (starting at `0`) - * @type {number} - * @memberof NonFungibleTokenHistoryEventList - */ - offset: number; - /** - * The number of events available - * @type {number} - * @memberof NonFungibleTokenHistoryEventList - */ - total: number; - /** - * - * @type {Array} - * @memberof NonFungibleTokenHistoryEventList - */ - results: Array; -} - -export function NonFungibleTokenHistoryEventListFromJSON(json: any): NonFungibleTokenHistoryEventList { - return NonFungibleTokenHistoryEventListFromJSONTyped(json, false); -} - -export function NonFungibleTokenHistoryEventListFromJSONTyped(json: any, ignoreDiscriminator: boolean): NonFungibleTokenHistoryEventList { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': json['results'], - }; -} - -export function NonFungibleTokenHistoryEventListToJSON(value?: NonFungibleTokenHistoryEventList | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/NonFungibleTokenHoldingsList.ts b/client/src/generated/models/NonFungibleTokenHoldingsList.ts deleted file mode 100644 index 5f190e226..000000000 --- a/client/src/generated/models/NonFungibleTokenHoldingsList.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * List of Non-Fungible Token holdings - * @export - * @interface NonFungibleTokenHoldingsList - */ -export interface NonFungibleTokenHoldingsList { - /** - * The number of Non-Fungible Token holdings to return - * @type {number} - * @memberof NonFungibleTokenHoldingsList - */ - limit: number; - /** - * The number to Non-Fungible Token holdings to skip (starting at `0`) - * @type {number} - * @memberof NonFungibleTokenHoldingsList - */ - offset: number; - /** - * The number of Non-Fungible Token holdings available - * @type {number} - * @memberof NonFungibleTokenHoldingsList - */ - total: number; - /** - * - * @type {Array} - * @memberof NonFungibleTokenHoldingsList - */ - results: Array; -} - -export function NonFungibleTokenHoldingsListFromJSON(json: any): NonFungibleTokenHoldingsList { - return NonFungibleTokenHoldingsListFromJSONTyped(json, false); -} - -export function NonFungibleTokenHoldingsListFromJSONTyped(json: any, ignoreDiscriminator: boolean): NonFungibleTokenHoldingsList { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': json['results'], - }; -} - -export function NonFungibleTokenHoldingsListToJSON(value?: NonFungibleTokenHoldingsList | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/NonFungibleTokenMetadata.ts b/client/src/generated/models/NonFungibleTokenMetadata.ts deleted file mode 100644 index e64fbb2c6..000000000 --- a/client/src/generated/models/NonFungibleTokenMetadata.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface NonFungibleTokenMetadata - */ -export interface NonFungibleTokenMetadata { - /** - * An optional string that is a valid URI which resolves to this token's metadata. Can be empty. - * @type {string} - * @memberof NonFungibleTokenMetadata - */ - token_uri: string; - /** - * Identifies the asset to which this token represents - * @type {string} - * @memberof NonFungibleTokenMetadata - */ - name: string; - /** - * Describes the asset to which this token represents - * @type {string} - * @memberof NonFungibleTokenMetadata - */ - description: string; - /** - * A URI pointing to a resource with mime type image/* representing the asset to which this token represents. The API may provide a URI to a cached resource, dependending on configuration. Otherwise, this can be the same value as the canonical image URI. - * @type {string} - * @memberof NonFungibleTokenMetadata - */ - image_uri: string; - /** - * The original image URI specified by the contract. A URI pointing to a resource with mime type image/* representing the asset to which this token represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive. - * @type {string} - * @memberof NonFungibleTokenMetadata - */ - image_canonical_uri: string; - /** - * Tx id that deployed the contract - * @type {string} - * @memberof NonFungibleTokenMetadata - */ - tx_id: string; - /** - * principle that deployed the contract - * @type {string} - * @memberof NonFungibleTokenMetadata - */ - sender_address: string; -} - -export function NonFungibleTokenMetadataFromJSON(json: any): NonFungibleTokenMetadata { - return NonFungibleTokenMetadataFromJSONTyped(json, false); -} - -export function NonFungibleTokenMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): NonFungibleTokenMetadata { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'token_uri': json['token_uri'], - 'name': json['name'], - 'description': json['description'], - 'image_uri': json['image_uri'], - 'image_canonical_uri': json['image_canonical_uri'], - 'tx_id': json['tx_id'], - 'sender_address': json['sender_address'], - }; -} - -export function NonFungibleTokenMetadataToJSON(value?: NonFungibleTokenMetadata | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'token_uri': value.token_uri, - 'name': value.name, - 'description': value.description, - 'image_uri': value.image_uri, - 'image_canonical_uri': value.image_canonical_uri, - 'tx_id': value.tx_id, - 'sender_address': value.sender_address, - }; -} - diff --git a/client/src/generated/models/NonFungibleTokenMintList.ts b/client/src/generated/models/NonFungibleTokenMintList.ts deleted file mode 100644 index 2e3b5a757..000000000 --- a/client/src/generated/models/NonFungibleTokenMintList.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * List of Non-Fungible Token mint events for an asset identifier - * @export - * @interface NonFungibleTokenMintList - */ -export interface NonFungibleTokenMintList { - /** - * The number of mint events to return - * @type {number} - * @memberof NonFungibleTokenMintList - */ - limit: number; - /** - * The number to mint events to skip (starting at `0`) - * @type {number} - * @memberof NonFungibleTokenMintList - */ - offset: number; - /** - * The number of mint events available - * @type {number} - * @memberof NonFungibleTokenMintList - */ - total: number; - /** - * - * @type {Array} - * @memberof NonFungibleTokenMintList - */ - results: Array; -} - -export function NonFungibleTokenMintListFromJSON(json: any): NonFungibleTokenMintList { - return NonFungibleTokenMintListFromJSONTyped(json, false); -} - -export function NonFungibleTokenMintListFromJSONTyped(json: any, ignoreDiscriminator: boolean): NonFungibleTokenMintList { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': json['results'], - }; -} - -export function NonFungibleTokenMintListToJSON(value?: NonFungibleTokenMintList | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/NonFungibleTokensMetadataList.ts b/client/src/generated/models/NonFungibleTokensMetadataList.ts deleted file mode 100644 index b9f20627c..000000000 --- a/client/src/generated/models/NonFungibleTokensMetadataList.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NonFungibleTokenMetadata, - NonFungibleTokenMetadataFromJSON, - NonFungibleTokenMetadataFromJSONTyped, - NonFungibleTokenMetadataToJSON, -} from './'; - -/** - * List of non fungible tokens metadata - * @export - * @interface NonFungibleTokensMetadataList - */ -export interface NonFungibleTokensMetadataList { - /** - * The number of tokens metadata to return - * @type {number} - * @memberof NonFungibleTokensMetadataList - */ - limit: number; - /** - * The number to tokens metadata to skip (starting at `0`) - * @type {number} - * @memberof NonFungibleTokensMetadataList - */ - offset: number; - /** - * The number of tokens metadata available - * @type {number} - * @memberof NonFungibleTokensMetadataList - */ - total: number; - /** - * - * @type {Array} - * @memberof NonFungibleTokensMetadataList - */ - results: Array; -} - -export function NonFungibleTokensMetadataListFromJSON(json: any): NonFungibleTokensMetadataList { - return NonFungibleTokensMetadataListFromJSONTyped(json, false); -} - -export function NonFungibleTokensMetadataListFromJSONTyped(json: any, ignoreDiscriminator: boolean): NonFungibleTokensMetadataList { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': ((json['results'] as Array).map(NonFungibleTokenMetadataFromJSON)), - }; -} - -export function NonFungibleTokensMetadataListToJSON(value?: NonFungibleTokensMetadataList | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': ((value.results as Array).map(NonFungibleTokenMetadataToJSON)), - }; -} - diff --git a/client/src/generated/models/OtherTransactionIdentifier.ts b/client/src/generated/models/OtherTransactionIdentifier.ts deleted file mode 100644 index fcaa8f046..000000000 --- a/client/src/generated/models/OtherTransactionIdentifier.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool. - * @export - * @interface OtherTransactionIdentifier - */ -export interface OtherTransactionIdentifier { - /** - * Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier. - * @type {string} - * @memberof OtherTransactionIdentifier - */ - hash: string; -} - -export function OtherTransactionIdentifierFromJSON(json: any): OtherTransactionIdentifier { - return OtherTransactionIdentifierFromJSONTyped(json, false); -} - -export function OtherTransactionIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): OtherTransactionIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'hash': json['hash'], - }; -} - -export function OtherTransactionIdentifierToJSON(value?: OtherTransactionIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'hash': value.hash, - }; -} - diff --git a/client/src/generated/models/PoolDelegation.ts b/client/src/generated/models/PoolDelegation.ts deleted file mode 100644 index 06165beb3..000000000 --- a/client/src/generated/models/PoolDelegation.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface PoolDelegation - */ -export interface PoolDelegation { - /** - * The principal of the pool member that issued the delegation - * @type {string} - * @memberof PoolDelegation - */ - stacker: string; - /** - * The pox-addr value specified by the stacker in the delegation operation - * @type {string} - * @memberof PoolDelegation - */ - pox_addr?: string; - /** - * The amount of uSTX delegated by the stacker - * @type {string} - * @memberof PoolDelegation - */ - amount_ustx: string; - /** - * The optional burnchain block unlock height that the stacker may have specified - * @type {number} - * @memberof PoolDelegation - */ - burn_block_unlock_height?: number; - /** - * The block height at which the stacker delegation transaction was mined at - * @type {number} - * @memberof PoolDelegation - */ - block_height: number; - /** - * The tx_id of the stacker delegation operation - * @type {string} - * @memberof PoolDelegation - */ - tx_id: string; -} - -export function PoolDelegationFromJSON(json: any): PoolDelegation { - return PoolDelegationFromJSONTyped(json, false); -} - -export function PoolDelegationFromJSONTyped(json: any, ignoreDiscriminator: boolean): PoolDelegation { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'stacker': json['stacker'], - 'pox_addr': !exists(json, 'pox_addr') ? undefined : json['pox_addr'], - 'amount_ustx': json['amount_ustx'], - 'burn_block_unlock_height': !exists(json, 'burn_block_unlock_height') ? undefined : json['burn_block_unlock_height'], - 'block_height': json['block_height'], - 'tx_id': json['tx_id'], - }; -} - -export function PoolDelegationToJSON(value?: PoolDelegation | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'stacker': value.stacker, - 'pox_addr': value.pox_addr, - 'amount_ustx': value.amount_ustx, - 'burn_block_unlock_height': value.burn_block_unlock_height, - 'block_height': value.block_height, - 'tx_id': value.tx_id, - }; -} - diff --git a/client/src/generated/models/PoolDelegationsResponse.ts b/client/src/generated/models/PoolDelegationsResponse.ts deleted file mode 100644 index 0e931bdf7..000000000 --- a/client/src/generated/models/PoolDelegationsResponse.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - PoolDelegation, - PoolDelegationFromJSON, - PoolDelegationFromJSONTyped, - PoolDelegationToJSON, -} from './'; - -/** - * GET request that returns stacking pool member details for a given pool (delegator) principal - * @export - * @interface PoolDelegationsResponse - */ -export interface PoolDelegationsResponse { - /** - * The number of Stackers to return - * @type {number} - * @memberof PoolDelegationsResponse - */ - limit: number; - /** - * The number to Stackers to skip (starting at `0`) - * @type {number} - * @memberof PoolDelegationsResponse - */ - offset: number; - /** - * The total number of Stackers - * @type {number} - * @memberof PoolDelegationsResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof PoolDelegationsResponse - */ - results: Array; -} - -export function PoolDelegationsResponseFromJSON(json: any): PoolDelegationsResponse { - return PoolDelegationsResponseFromJSONTyped(json, false); -} - -export function PoolDelegationsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): PoolDelegationsResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': ((json['results'] as Array).map(PoolDelegationFromJSON)), - }; -} - -export function PoolDelegationsResponseToJSON(value?: PoolDelegationsResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': ((value.results as Array).map(PoolDelegationToJSON)), - }; -} - diff --git a/client/src/generated/models/PostCoreNodeTransactionsError.ts b/client/src/generated/models/PostCoreNodeTransactionsError.ts deleted file mode 100644 index 6c7d85045..000000000 --- a/client/src/generated/models/PostCoreNodeTransactionsError.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that returns transactions - * @export - * @interface PostCoreNodeTransactionsError - */ -export interface PostCoreNodeTransactionsError { - /** - * The error - * @type {string} - * @memberof PostCoreNodeTransactionsError - */ - error: string; - /** - * The reason for the error - * @type {string} - * @memberof PostCoreNodeTransactionsError - */ - reason: string; - /** - * More details about the reason - * @type {object} - * @memberof PostCoreNodeTransactionsError - */ - reason_data: object; - /** - * The relevant transaction id - * @type {string} - * @memberof PostCoreNodeTransactionsError - */ - txid: string; -} - -export function PostCoreNodeTransactionsErrorFromJSON(json: any): PostCoreNodeTransactionsError { - return PostCoreNodeTransactionsErrorFromJSONTyped(json, false); -} - -export function PostCoreNodeTransactionsErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): PostCoreNodeTransactionsError { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'error': json['error'], - 'reason': json['reason'], - 'reason_data': json['reason_data'], - 'txid': json['txid'], - }; -} - -export function PostCoreNodeTransactionsErrorToJSON(value?: PostCoreNodeTransactionsError | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'error': value.error, - 'reason': value.reason, - 'reason_data': value.reason_data, - 'txid': value.txid, - }; -} - diff --git a/client/src/generated/models/ReadOnlyFunctionArgs.ts b/client/src/generated/models/ReadOnlyFunctionArgs.ts deleted file mode 100644 index 0feaed7d2..000000000 --- a/client/src/generated/models/ReadOnlyFunctionArgs.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Describes representation of a Type-0 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-0-transferring-an-asset - * @export - * @interface ReadOnlyFunctionArgs - */ -export interface ReadOnlyFunctionArgs { - /** - * The simulated tx-sender - * @type {string} - * @memberof ReadOnlyFunctionArgs - */ - sender: string; - /** - * An array of hex serialized Clarity values - * @type {Array} - * @memberof ReadOnlyFunctionArgs - */ - arguments: Array; -} - -export function ReadOnlyFunctionArgsFromJSON(json: any): ReadOnlyFunctionArgs { - return ReadOnlyFunctionArgsFromJSONTyped(json, false); -} - -export function ReadOnlyFunctionArgsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReadOnlyFunctionArgs { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'sender': json['sender'], - 'arguments': json['arguments'], - }; -} - -export function ReadOnlyFunctionArgsToJSON(value?: ReadOnlyFunctionArgs | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'sender': value.sender, - 'arguments': value.arguments, - }; -} - diff --git a/client/src/generated/models/ReadOnlyFunctionSuccessResponse.ts b/client/src/generated/models/ReadOnlyFunctionSuccessResponse.ts deleted file mode 100644 index 01a24eb90..000000000 --- a/client/src/generated/models/ReadOnlyFunctionSuccessResponse.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request to get contract source - * @export - * @interface ReadOnlyFunctionSuccessResponse - */ -export interface ReadOnlyFunctionSuccessResponse { - /** - * - * @type {boolean} - * @memberof ReadOnlyFunctionSuccessResponse - */ - okay: boolean; - /** - * - * @type {string} - * @memberof ReadOnlyFunctionSuccessResponse - */ - result?: string; - /** - * - * @type {string} - * @memberof ReadOnlyFunctionSuccessResponse - */ - cause?: string; -} - -export function ReadOnlyFunctionSuccessResponseFromJSON(json: any): ReadOnlyFunctionSuccessResponse { - return ReadOnlyFunctionSuccessResponseFromJSONTyped(json, false); -} - -export function ReadOnlyFunctionSuccessResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReadOnlyFunctionSuccessResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'okay': json['okay'], - 'result': !exists(json, 'result') ? undefined : json['result'], - 'cause': !exists(json, 'cause') ? undefined : json['cause'], - }; -} - -export function ReadOnlyFunctionSuccessResponseToJSON(value?: ReadOnlyFunctionSuccessResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'okay': value.okay, - 'result': value.result, - 'cause': value.cause, - }; -} - diff --git a/client/src/generated/models/RosettaAccount.ts b/client/src/generated/models/RosettaAccount.ts deleted file mode 100644 index 7fa9faa75..000000000 --- a/client/src/generated/models/RosettaAccount.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaSubAccount, - RosettaSubAccountFromJSON, - RosettaSubAccountFromJSONTyped, - RosettaSubAccountToJSON, -} from './'; - -/** - * The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated). - * @export - * @interface RosettaAccount - */ -export interface RosettaAccount { - /** - * The address may be a cryptographic public key (or some encoding of it) or a provided username. - * @type {string} - * @memberof RosettaAccount - */ - address: string; - /** - * - * @type {RosettaSubAccount} - * @memberof RosettaAccount - */ - sub_account?: RosettaSubAccount; - /** - * Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata. - * @type {object} - * @memberof RosettaAccount - */ - metadata?: object; -} - -export function RosettaAccountFromJSON(json: any): RosettaAccount { - return RosettaAccountFromJSONTyped(json, false); -} - -export function RosettaAccountFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaAccount { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'address': json['address'], - 'sub_account': !exists(json, 'sub_account') ? undefined : RosettaSubAccountFromJSON(json['sub_account']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaAccountToJSON(value?: RosettaAccount | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'address': value.address, - 'sub_account': RosettaSubAccountToJSON(value.sub_account), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaAccountBalanceRequest.ts b/client/src/generated/models/RosettaAccountBalanceRequest.ts deleted file mode 100644 index c3148c87a..000000000 --- a/client/src/generated/models/RosettaAccountBalanceRequest.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, - RosettaAccount, - RosettaAccountFromJSON, - RosettaAccountFromJSONTyped, - RosettaAccountToJSON, -} from './'; - -/** - * An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. If the block_identifier is populated, a historical balance query should be performed. - * @export - * @interface RosettaAccountBalanceRequest - */ -export interface RosettaAccountBalanceRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaAccountBalanceRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {RosettaAccount} - * @memberof RosettaAccountBalanceRequest - */ - account_identifier: RosettaAccount; - /** - * When fetching data by BlockIdentifier, it may be possible to only specify the index or hash. If neither property is specified, it is assumed that the client is making a request at the current block. - * @type {object} - * @memberof RosettaAccountBalanceRequest - */ - block_identifier?: object; -} - -export function RosettaAccountBalanceRequestFromJSON(json: any): RosettaAccountBalanceRequest { - return RosettaAccountBalanceRequestFromJSONTyped(json, false); -} - -export function RosettaAccountBalanceRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaAccountBalanceRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'account_identifier': RosettaAccountFromJSON(json['account_identifier']), - 'block_identifier': !exists(json, 'block_identifier') ? undefined : json['block_identifier'], - }; -} - -export function RosettaAccountBalanceRequestToJSON(value?: RosettaAccountBalanceRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'account_identifier': RosettaAccountToJSON(value.account_identifier), - 'block_identifier': value.block_identifier, - }; -} - diff --git a/client/src/generated/models/RosettaAccountBalanceResponse.ts b/client/src/generated/models/RosettaAccountBalanceResponse.ts deleted file mode 100644 index 667eac242..000000000 --- a/client/src/generated/models/RosettaAccountBalanceResponse.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAccountBalanceResponseMetadata, - RosettaAccountBalanceResponseMetadataFromJSON, - RosettaAccountBalanceResponseMetadataFromJSONTyped, - RosettaAccountBalanceResponseMetadataToJSON, - RosettaAmount, - RosettaAmountFromJSON, - RosettaAmountFromJSONTyped, - RosettaAmountToJSON, - RosettaCoin, - RosettaCoinFromJSON, - RosettaCoinFromJSONTyped, - RosettaCoinToJSON, -} from './'; - -/** - * An AccountBalanceResponse is returned on the /account/balance endpoint. If an account has a balance for each AccountIdentifier describing it (ex: an ERC-20 token balance on a few smart contracts), an account balance request must be made with each AccountIdentifier. - * @export - * @interface RosettaAccountBalanceResponse - */ -export interface RosettaAccountBalanceResponse { - /** - * The block_identifier uniquely identifies a block in a particular network. - * @type {object} - * @memberof RosettaAccountBalanceResponse - */ - block_identifier: object | null; - /** - * A single account balance may have multiple currencies - * @type {Array} - * @memberof RosettaAccountBalanceResponse - */ - balances: Array; - /** - * If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs. - * @type {Array} - * @memberof RosettaAccountBalanceResponse - */ - coins?: Array; - /** - * - * @type {RosettaAccountBalanceResponseMetadata} - * @memberof RosettaAccountBalanceResponse - */ - metadata?: RosettaAccountBalanceResponseMetadata; -} - -export function RosettaAccountBalanceResponseFromJSON(json: any): RosettaAccountBalanceResponse { - return RosettaAccountBalanceResponseFromJSONTyped(json, false); -} - -export function RosettaAccountBalanceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaAccountBalanceResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'block_identifier': json['block_identifier'], - 'balances': ((json['balances'] as Array).map(RosettaAmountFromJSON)), - 'coins': !exists(json, 'coins') ? undefined : ((json['coins'] as Array).map(RosettaCoinFromJSON)), - 'metadata': !exists(json, 'metadata') ? undefined : RosettaAccountBalanceResponseMetadataFromJSON(json['metadata']), - }; -} - -export function RosettaAccountBalanceResponseToJSON(value?: RosettaAccountBalanceResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'block_identifier': value.block_identifier, - 'balances': ((value.balances as Array).map(RosettaAmountToJSON)), - 'coins': value.coins === undefined ? undefined : ((value.coins as Array).map(RosettaCoinToJSON)), - 'metadata': RosettaAccountBalanceResponseMetadataToJSON(value.metadata), - }; -} - diff --git a/client/src/generated/models/RosettaAccountBalanceResponseCoinIdentifier.ts b/client/src/generated/models/RosettaAccountBalanceResponseCoinIdentifier.ts deleted file mode 100644 index 1e179d5ca..000000000 --- a/client/src/generated/models/RosettaAccountBalanceResponseCoinIdentifier.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * CoinIdentifier uniquely identifies a Coin. - * @export - * @interface RosettaAccountBalanceResponseCoinIdentifier - */ -export interface RosettaAccountBalanceResponseCoinIdentifier { - /** - * Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index. - * @type {string} - * @memberof RosettaAccountBalanceResponseCoinIdentifier - */ - identifier: string; -} - -export function RosettaAccountBalanceResponseCoinIdentifierFromJSON(json: any): RosettaAccountBalanceResponseCoinIdentifier { - return RosettaAccountBalanceResponseCoinIdentifierFromJSONTyped(json, false); -} - -export function RosettaAccountBalanceResponseCoinIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaAccountBalanceResponseCoinIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'identifier': json['identifier'], - }; -} - -export function RosettaAccountBalanceResponseCoinIdentifierToJSON(value?: RosettaAccountBalanceResponseCoinIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'identifier': value.identifier, - }; -} - diff --git a/client/src/generated/models/RosettaAccountBalanceResponseMetadata.ts b/client/src/generated/models/RosettaAccountBalanceResponseMetadata.ts deleted file mode 100644 index 2b46f2c55..000000000 --- a/client/src/generated/models/RosettaAccountBalanceResponseMetadata.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Account-based blockchains that utilize a nonce or sequence number should include that number in the metadata. This number could be unique to the identifier or global across the account address. - * @export - * @interface RosettaAccountBalanceResponseMetadata - */ -export interface RosettaAccountBalanceResponseMetadata { - /** - * - * @type {number} - * @memberof RosettaAccountBalanceResponseMetadata - */ - sequence_number: number; -} - -export function RosettaAccountBalanceResponseMetadataFromJSON(json: any): RosettaAccountBalanceResponseMetadata { - return RosettaAccountBalanceResponseMetadataFromJSONTyped(json, false); -} - -export function RosettaAccountBalanceResponseMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaAccountBalanceResponseMetadata { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'sequence_number': json['sequence_number'], - }; -} - -export function RosettaAccountBalanceResponseMetadataToJSON(value?: RosettaAccountBalanceResponseMetadata | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'sequence_number': value.sequence_number, - }; -} - diff --git a/client/src/generated/models/RosettaAccountIdentifier.ts b/client/src/generated/models/RosettaAccountIdentifier.ts deleted file mode 100644 index 8a2ddaae6..000000000 --- a/client/src/generated/models/RosettaAccountIdentifier.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaSubAccount, - RosettaSubAccountFromJSON, - RosettaSubAccountFromJSONTyped, - RosettaSubAccountToJSON, -} from './'; - -/** - * The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated). - * @export - * @interface RosettaAccountIdentifier - */ -export interface RosettaAccountIdentifier { - /** - * The address may be a cryptographic public key (or some encoding of it) or a provided username. - * @type {string} - * @memberof RosettaAccountIdentifier - */ - address: string; - /** - * - * @type {RosettaSubAccount} - * @memberof RosettaAccountIdentifier - */ - sub_account?: RosettaSubAccount; - /** - * Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata. - * @type {object} - * @memberof RosettaAccountIdentifier - */ - metadata?: object; -} - -export function RosettaAccountIdentifierFromJSON(json: any): RosettaAccountIdentifier { - return RosettaAccountIdentifierFromJSONTyped(json, false); -} - -export function RosettaAccountIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaAccountIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'address': json['address'], - 'sub_account': !exists(json, 'sub_account') ? undefined : RosettaSubAccountFromJSON(json['sub_account']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaAccountIdentifierToJSON(value?: RosettaAccountIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'address': value.address, - 'sub_account': RosettaSubAccountToJSON(value.sub_account), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaAmount.ts b/client/src/generated/models/RosettaAmount.ts deleted file mode 100644 index 75f6302f6..000000000 --- a/client/src/generated/models/RosettaAmount.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaCurrency, - RosettaCurrencyFromJSON, - RosettaCurrencyFromJSONTyped, - RosettaCurrencyToJSON, -} from './'; - -/** - * Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency. - * @export - * @interface RosettaAmount - */ -export interface RosettaAmount { - /** - * Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000. - * @type {string} - * @memberof RosettaAmount - */ - value: string; - /** - * - * @type {RosettaCurrency} - * @memberof RosettaAmount - */ - currency: RosettaCurrency; - /** - * - * @type {object} - * @memberof RosettaAmount - */ - metadata?: object; -} - -export function RosettaAmountFromJSON(json: any): RosettaAmount { - return RosettaAmountFromJSONTyped(json, false); -} - -export function RosettaAmountFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaAmount { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'value': json['value'], - 'currency': RosettaCurrencyFromJSON(json['currency']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaAmountToJSON(value?: RosettaAmount | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'value': value.value, - 'currency': RosettaCurrencyToJSON(value.currency), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaBlock.ts b/client/src/generated/models/RosettaBlock.ts deleted file mode 100644 index 03143ae95..000000000 --- a/client/src/generated/models/RosettaBlock.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaBlockMetadata1, - RosettaBlockMetadata1FromJSON, - RosettaBlockMetadata1FromJSONTyped, - RosettaBlockMetadata1ToJSON, - RosettaParentBlockIdentifier, - RosettaParentBlockIdentifierFromJSON, - RosettaParentBlockIdentifierFromJSONTyped, - RosettaParentBlockIdentifierToJSON, - RosettaTransaction, - RosettaTransactionFromJSON, - RosettaTransactionFromJSONTyped, - RosettaTransactionToJSON, -} from './'; - -/** - * Blocks contain an array of Transactions that occurred at a particular BlockIdentifier. A hard requirement for blocks returned by Rosetta implementations is that they MUST be inalterable: once a client has requested and received a block identified by a specific BlockIndentifier, all future calls for that same BlockIdentifier must return the same block contents. - * @export - * @interface RosettaBlock - */ -export interface RosettaBlock { - /** - * The block_identifier uniquely identifies a block in a particular network. - * @type {object} - * @memberof RosettaBlock - */ - block_identifier: object | null; - /** - * - * @type {RosettaParentBlockIdentifier} - * @memberof RosettaBlock - */ - parent_block_identifier: RosettaParentBlockIdentifier; - /** - * The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second. - * @type {number} - * @memberof RosettaBlock - */ - timestamp: number; - /** - * All the transactions in the block - * @type {Array} - * @memberof RosettaBlock - */ - transactions: Array; - /** - * - * @type {RosettaBlockMetadata1} - * @memberof RosettaBlock - */ - metadata?: RosettaBlockMetadata1; -} - -export function RosettaBlockFromJSON(json: any): RosettaBlock { - return RosettaBlockFromJSONTyped(json, false); -} - -export function RosettaBlockFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaBlock { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'block_identifier': json['block_identifier'], - 'parent_block_identifier': RosettaParentBlockIdentifierFromJSON(json['parent_block_identifier']), - 'timestamp': json['timestamp'], - 'transactions': ((json['transactions'] as Array).map(RosettaTransactionFromJSON)), - 'metadata': !exists(json, 'metadata') ? undefined : RosettaBlockMetadata1FromJSON(json['metadata']), - }; -} - -export function RosettaBlockToJSON(value?: RosettaBlock | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'block_identifier': value.block_identifier, - 'parent_block_identifier': RosettaParentBlockIdentifierToJSON(value.parent_block_identifier), - 'timestamp': value.timestamp, - 'transactions': ((value.transactions as Array).map(RosettaTransactionToJSON)), - 'metadata': RosettaBlockMetadata1ToJSON(value.metadata), - }; -} - diff --git a/client/src/generated/models/RosettaBlockMetadata.ts b/client/src/generated/models/RosettaBlockMetadata.ts deleted file mode 100644 index 82fa5fd04..000000000 --- a/client/src/generated/models/RosettaBlockMetadata.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Transactions that are related to other transactions (like a cross-shard transaction) should include the tranaction_identifier of these transactions in the metadata. - * @export - * @interface RosettaBlockMetadata - */ -export interface RosettaBlockMetadata { - /** - * STX token transfer memo. - * @type {string} - * @memberof RosettaBlockMetadata - */ - memo?: string; - /** - * The Size - * @type {number} - * @memberof RosettaBlockMetadata - */ - size?: number; - /** - * The locktime - * @type {number} - * @memberof RosettaBlockMetadata - */ - lockTime?: number; -} - -export function RosettaBlockMetadataFromJSON(json: any): RosettaBlockMetadata { - return RosettaBlockMetadataFromJSONTyped(json, false); -} - -export function RosettaBlockMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaBlockMetadata { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'memo': !exists(json, 'memo') ? undefined : json['memo'], - 'size': !exists(json, 'size') ? undefined : json['size'], - 'lockTime': !exists(json, 'lockTime') ? undefined : json['lockTime'], - }; -} - -export function RosettaBlockMetadataToJSON(value?: RosettaBlockMetadata | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'memo': value.memo, - 'size': value.size, - 'lockTime': value.lockTime, - }; -} - diff --git a/client/src/generated/models/RosettaBlockMetadata1.ts b/client/src/generated/models/RosettaBlockMetadata1.ts deleted file mode 100644 index 301da689c..000000000 --- a/client/src/generated/models/RosettaBlockMetadata1.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * meta data - * @export - * @interface RosettaBlockMetadata1 - */ -export interface RosettaBlockMetadata1 { - /** - * - * @type {string} - * @memberof RosettaBlockMetadata1 - */ - transactions_root: string; - /** - * - * @type {string} - * @memberof RosettaBlockMetadata1 - */ - difficulty: string; -} - -export function RosettaBlockMetadata1FromJSON(json: any): RosettaBlockMetadata1 { - return RosettaBlockMetadata1FromJSONTyped(json, false); -} - -export function RosettaBlockMetadata1FromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaBlockMetadata1 { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transactions_root': json['transactions_root'], - 'difficulty': json['difficulty'], - }; -} - -export function RosettaBlockMetadata1ToJSON(value?: RosettaBlockMetadata1 | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transactions_root': value.transactions_root, - 'difficulty': value.difficulty, - }; -} - diff --git a/client/src/generated/models/RosettaBlockRequest.ts b/client/src/generated/models/RosettaBlockRequest.ts deleted file mode 100644 index 2422df9c8..000000000 --- a/client/src/generated/models/RosettaBlockRequest.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, -} from './'; - -/** - * A BlockRequest is utilized to make a block request on the /block endpoint. - * @export - * @interface RosettaBlockRequest - */ -export interface RosettaBlockRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaBlockRequest - */ - network_identifier: NetworkIdentifier; - /** - * When fetching data by BlockIdentifier, it may be possible to only specify the index or hash. If neither property is specified, it is assumed that the client is making a request at the current block. - * @type {object} - * @memberof RosettaBlockRequest - */ - block_identifier: object; -} - -export function RosettaBlockRequestFromJSON(json: any): RosettaBlockRequest { - return RosettaBlockRequestFromJSONTyped(json, false); -} - -export function RosettaBlockRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaBlockRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'block_identifier': json['block_identifier'], - }; -} - -export function RosettaBlockRequestToJSON(value?: RosettaBlockRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'block_identifier': value.block_identifier, - }; -} - diff --git a/client/src/generated/models/RosettaBlockResponse.ts b/client/src/generated/models/RosettaBlockResponse.ts deleted file mode 100644 index 9fabd951e..000000000 --- a/client/src/generated/models/RosettaBlockResponse.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - OtherTransactionIdentifier, - OtherTransactionIdentifierFromJSON, - OtherTransactionIdentifierFromJSONTyped, - OtherTransactionIdentifierToJSON, - RosettaBlock, - RosettaBlockFromJSON, - RosettaBlockFromJSONTyped, - RosettaBlockToJSON, -} from './'; - -/** - * A BlockResponse includes a fully-populated block or a partially-populated block with a list of other transactions to fetch (other_transactions). As a result of the consensus algorithm of some blockchains, blocks can be omitted (i.e. certain block indexes can be skipped). If a query for one of these omitted indexes is made, the response should not include a Block object. It is VERY important to note that blocks MUST still form a canonical, connected chain of blocks where each block has a unique index. In other words, the PartialBlockIdentifier of a block after an omitted block should reference the last non-omitted block. - * @export - * @interface RosettaBlockResponse - */ -export interface RosettaBlockResponse { - /** - * - * @type {RosettaBlock} - * @memberof RosettaBlockResponse - */ - block?: RosettaBlock; - /** - * Some blockchains may require additional transactions to be fetched that weren't returned in the block response (ex: block only returns transaction hashes). For blockchains with a lot of transactions in each block, this can be very useful as consumers can concurrently fetch all transactions returned. - * @type {Array} - * @memberof RosettaBlockResponse - */ - other_transactions?: Array; -} - -export function RosettaBlockResponseFromJSON(json: any): RosettaBlockResponse { - return RosettaBlockResponseFromJSONTyped(json, false); -} - -export function RosettaBlockResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaBlockResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'block': !exists(json, 'block') ? undefined : RosettaBlockFromJSON(json['block']), - 'other_transactions': !exists(json, 'other_transactions') ? undefined : ((json['other_transactions'] as Array).map(OtherTransactionIdentifierFromJSON)), - }; -} - -export function RosettaBlockResponseToJSON(value?: RosettaBlockResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'block': RosettaBlockToJSON(value.block), - 'other_transactions': value.other_transactions === undefined ? undefined : ((value.other_transactions as Array).map(OtherTransactionIdentifierToJSON)), - }; -} - diff --git a/client/src/generated/models/RosettaBlockTransactionRequest.ts b/client/src/generated/models/RosettaBlockTransactionRequest.ts deleted file mode 100644 index c42c7e2d3..000000000 --- a/client/src/generated/models/RosettaBlockTransactionRequest.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, - TransactionIdentifier, - TransactionIdentifierFromJSON, - TransactionIdentifierFromJSONTyped, - TransactionIdentifierToJSON, -} from './'; - -/** - * A BlockTransactionRequest is used to fetch a Transaction included in a block that is not returned in a BlockResponse. - * @export - * @interface RosettaBlockTransactionRequest - */ -export interface RosettaBlockTransactionRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaBlockTransactionRequest - */ - network_identifier: NetworkIdentifier; - /** - * When fetching data by BlockIdentifier, it may be possible to only specify the index or hash. If neither property is specified, it is assumed that the client is making a request at the current block. - * @type {object} - * @memberof RosettaBlockTransactionRequest - */ - block_identifier: object; - /** - * - * @type {TransactionIdentifier} - * @memberof RosettaBlockTransactionRequest - */ - transaction_identifier: TransactionIdentifier; -} - -export function RosettaBlockTransactionRequestFromJSON(json: any): RosettaBlockTransactionRequest { - return RosettaBlockTransactionRequestFromJSONTyped(json, false); -} - -export function RosettaBlockTransactionRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaBlockTransactionRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'block_identifier': json['block_identifier'], - 'transaction_identifier': TransactionIdentifierFromJSON(json['transaction_identifier']), - }; -} - -export function RosettaBlockTransactionRequestToJSON(value?: RosettaBlockTransactionRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'block_identifier': value.block_identifier, - 'transaction_identifier': TransactionIdentifierToJSON(value.transaction_identifier), - }; -} - diff --git a/client/src/generated/models/RosettaBlockTransactionResponse.ts b/client/src/generated/models/RosettaBlockTransactionResponse.ts deleted file mode 100644 index 0adb68789..000000000 --- a/client/src/generated/models/RosettaBlockTransactionResponse.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaTransaction, - RosettaTransactionFromJSON, - RosettaTransactionFromJSONTyped, - RosettaTransactionToJSON, -} from './'; - -/** - * A BlockTransactionResponse contains information about a block transaction. - * @export - * @interface RosettaBlockTransactionResponse - */ -export interface RosettaBlockTransactionResponse { - /** - * - * @type {RosettaTransaction} - * @memberof RosettaBlockTransactionResponse - */ - transaction: RosettaTransaction; -} - -export function RosettaBlockTransactionResponseFromJSON(json: any): RosettaBlockTransactionResponse { - return RosettaBlockTransactionResponseFromJSONTyped(json, false); -} - -export function RosettaBlockTransactionResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaBlockTransactionResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transaction': RosettaTransactionFromJSON(json['transaction']), - }; -} - -export function RosettaBlockTransactionResponseToJSON(value?: RosettaBlockTransactionResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transaction': RosettaTransactionToJSON(value.transaction), - }; -} - diff --git a/client/src/generated/models/RosettaCoin.ts b/client/src/generated/models/RosettaCoin.ts deleted file mode 100644 index 56b305fb0..000000000 --- a/client/src/generated/models/RosettaCoin.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAccountBalanceResponseCoinIdentifier, - RosettaAccountBalanceResponseCoinIdentifierFromJSON, - RosettaAccountBalanceResponseCoinIdentifierFromJSONTyped, - RosettaAccountBalanceResponseCoinIdentifierToJSON, - RosettaAmount, - RosettaAmountFromJSON, - RosettaAmountFromJSONTyped, - RosettaAmountToJSON, -} from './'; - -/** - * If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs. - * @export - * @interface RosettaCoin - */ -export interface RosettaCoin { - /** - * - * @type {RosettaAccountBalanceResponseCoinIdentifier} - * @memberof RosettaCoin - */ - coin_identifier: RosettaAccountBalanceResponseCoinIdentifier; - /** - * - * @type {RosettaAmount} - * @memberof RosettaCoin - */ - amount: RosettaAmount; -} - -export function RosettaCoinFromJSON(json: any): RosettaCoin { - return RosettaCoinFromJSONTyped(json, false); -} - -export function RosettaCoinFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaCoin { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'coin_identifier': RosettaAccountBalanceResponseCoinIdentifierFromJSON(json['coin_identifier']), - 'amount': RosettaAmountFromJSON(json['amount']), - }; -} - -export function RosettaCoinToJSON(value?: RosettaCoin | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'coin_identifier': RosettaAccountBalanceResponseCoinIdentifierToJSON(value.coin_identifier), - 'amount': RosettaAmountToJSON(value.amount), - }; -} - diff --git a/client/src/generated/models/RosettaCoinChange.ts b/client/src/generated/models/RosettaCoinChange.ts deleted file mode 100644 index 50c504ffd..000000000 --- a/client/src/generated/models/RosettaCoinChange.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAccountBalanceResponseCoinIdentifier, - RosettaAccountBalanceResponseCoinIdentifierFromJSON, - RosettaAccountBalanceResponseCoinIdentifierFromJSONTyped, - RosettaAccountBalanceResponseCoinIdentifierToJSON, -} from './'; - -/** - * CoinChange is used to represent a change in state of a some coin identified by a coin_identifier. This object is part of the Operation model and must be populated for UTXO-based blockchains. Coincidentally, this abstraction of UTXOs allows for supporting both account-based transfers and UTXO-based transfers on the same blockchain (when a transfer is account-based, don't populate this model). - * @export - * @interface RosettaCoinChange - */ -export interface RosettaCoinChange { - /** - * - * @type {RosettaAccountBalanceResponseCoinIdentifier} - * @memberof RosettaCoinChange - */ - coin_identifier: RosettaAccountBalanceResponseCoinIdentifier; - /** - * CoinActions are different state changes that a Coin can undergo. When a Coin is created, it is coin_created. When a Coin is spent, it is coin_spent. It is assumed that a single Coin cannot be created or spent more than once. - * @type {string} - * @memberof RosettaCoinChange - */ - coin_action: RosettaCoinChangeCoinActionEnum; -} - -/** -* @export -* @enum {string} -*/ -export enum RosettaCoinChangeCoinActionEnum { - created = 'coin_created', - spent = 'coin_spent' -} - -export function RosettaCoinChangeFromJSON(json: any): RosettaCoinChange { - return RosettaCoinChangeFromJSONTyped(json, false); -} - -export function RosettaCoinChangeFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaCoinChange { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'coin_identifier': RosettaAccountBalanceResponseCoinIdentifierFromJSON(json['coin_identifier']), - 'coin_action': json['coin_action'], - }; -} - -export function RosettaCoinChangeToJSON(value?: RosettaCoinChange | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'coin_identifier': RosettaAccountBalanceResponseCoinIdentifierToJSON(value.coin_identifier), - 'coin_action': value.coin_action, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionCombineRequest.ts b/client/src/generated/models/RosettaConstructionCombineRequest.ts deleted file mode 100644 index e2f49f6a6..000000000 --- a/client/src/generated/models/RosettaConstructionCombineRequest.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, - RosettaSignature, - RosettaSignatureFromJSON, - RosettaSignatureFromJSONTyped, - RosettaSignatureToJSON, -} from './'; - -/** - * RosettaConstructionCombineRequest is the input to the /construction/combine endpoint. It contains the unsigned transaction blob returned by /construction/payloads and all required signatures to create a network transaction. - * @export - * @interface RosettaConstructionCombineRequest - */ -export interface RosettaConstructionCombineRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaConstructionCombineRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {string} - * @memberof RosettaConstructionCombineRequest - */ - unsigned_transaction: string; - /** - * - * @type {Array} - * @memberof RosettaConstructionCombineRequest - */ - signatures: Array; -} - -export function RosettaConstructionCombineRequestFromJSON(json: any): RosettaConstructionCombineRequest { - return RosettaConstructionCombineRequestFromJSONTyped(json, false); -} - -export function RosettaConstructionCombineRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionCombineRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'unsigned_transaction': json['unsigned_transaction'], - 'signatures': ((json['signatures'] as Array).map(RosettaSignatureFromJSON)), - }; -} - -export function RosettaConstructionCombineRequestToJSON(value?: RosettaConstructionCombineRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'unsigned_transaction': value.unsigned_transaction, - 'signatures': ((value.signatures as Array).map(RosettaSignatureToJSON)), - }; -} - diff --git a/client/src/generated/models/RosettaConstructionCombineResponse.ts b/client/src/generated/models/RosettaConstructionCombineResponse.ts deleted file mode 100644 index 67ef31766..000000000 --- a/client/src/generated/models/RosettaConstructionCombineResponse.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * RosettaConstructionCombineResponse is returned by /construction/combine. The network payload will be sent directly to the construction/submit endpoint. - * @export - * @interface RosettaConstructionCombineResponse - */ -export interface RosettaConstructionCombineResponse { - /** - * Signed transaction bytes in hex - * @type {string} - * @memberof RosettaConstructionCombineResponse - */ - signed_transaction: string; -} - -export function RosettaConstructionCombineResponseFromJSON(json: any): RosettaConstructionCombineResponse { - return RosettaConstructionCombineResponseFromJSONTyped(json, false); -} - -export function RosettaConstructionCombineResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionCombineResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'signed_transaction': json['signed_transaction'], - }; -} - -export function RosettaConstructionCombineResponseToJSON(value?: RosettaConstructionCombineResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'signed_transaction': value.signed_transaction, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionDeriveRequest.ts b/client/src/generated/models/RosettaConstructionDeriveRequest.ts deleted file mode 100644 index 40441e7ab..000000000 --- a/client/src/generated/models/RosettaConstructionDeriveRequest.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, - RosettaPublicKey, - RosettaPublicKeyFromJSON, - RosettaPublicKeyFromJSONTyped, - RosettaPublicKeyToJSON, -} from './'; - -/** - * Network is provided in the request because some blockchains have different address formats for different networks - * @export - * @interface RosettaConstructionDeriveRequest - */ -export interface RosettaConstructionDeriveRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaConstructionDeriveRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {RosettaPublicKey} - * @memberof RosettaConstructionDeriveRequest - */ - public_key: RosettaPublicKey; - /** - * - * @type {object} - * @memberof RosettaConstructionDeriveRequest - */ - metadata?: object; -} - -export function RosettaConstructionDeriveRequestFromJSON(json: any): RosettaConstructionDeriveRequest { - return RosettaConstructionDeriveRequestFromJSONTyped(json, false); -} - -export function RosettaConstructionDeriveRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionDeriveRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'public_key': RosettaPublicKeyFromJSON(json['public_key']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaConstructionDeriveRequestToJSON(value?: RosettaConstructionDeriveRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'public_key': RosettaPublicKeyToJSON(value.public_key), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionDeriveResponse.ts b/client/src/generated/models/RosettaConstructionDeriveResponse.ts deleted file mode 100644 index 014f1f3da..000000000 --- a/client/src/generated/models/RosettaConstructionDeriveResponse.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAccountIdentifier, - RosettaAccountIdentifierFromJSON, - RosettaAccountIdentifierFromJSONTyped, - RosettaAccountIdentifierToJSON, -} from './'; - -/** - * ConstructionDeriveResponse is returned by the /construction/derive endpoint. - * @export - * @interface RosettaConstructionDeriveResponse - */ -export interface RosettaConstructionDeriveResponse { - /** - * [DEPRECATED by account_identifier in v1.4.4] Address in network-specific format. - * @type {string} - * @memberof RosettaConstructionDeriveResponse - */ - address?: string; - /** - * - * @type {RosettaAccountIdentifier} - * @memberof RosettaConstructionDeriveResponse - */ - account_identifier?: RosettaAccountIdentifier; - /** - * - * @type {object} - * @memberof RosettaConstructionDeriveResponse - */ - metadata?: object; -} - -export function RosettaConstructionDeriveResponseFromJSON(json: any): RosettaConstructionDeriveResponse { - return RosettaConstructionDeriveResponseFromJSONTyped(json, false); -} - -export function RosettaConstructionDeriveResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionDeriveResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'address': !exists(json, 'address') ? undefined : json['address'], - 'account_identifier': !exists(json, 'account_identifier') ? undefined : RosettaAccountIdentifierFromJSON(json['account_identifier']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaConstructionDeriveResponseToJSON(value?: RosettaConstructionDeriveResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'address': value.address, - 'account_identifier': RosettaAccountIdentifierToJSON(value.account_identifier), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionHashRequest.ts b/client/src/generated/models/RosettaConstructionHashRequest.ts deleted file mode 100644 index 230e5edea..000000000 --- a/client/src/generated/models/RosettaConstructionHashRequest.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, -} from './'; - -/** - * TransactionHash returns the network-specific transaction hash for a signed transaction. - * @export - * @interface RosettaConstructionHashRequest - */ -export interface RosettaConstructionHashRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaConstructionHashRequest - */ - network_identifier: NetworkIdentifier; - /** - * Signed transaction - * @type {string} - * @memberof RosettaConstructionHashRequest - */ - signed_transaction: string; -} - -export function RosettaConstructionHashRequestFromJSON(json: any): RosettaConstructionHashRequest { - return RosettaConstructionHashRequestFromJSONTyped(json, false); -} - -export function RosettaConstructionHashRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionHashRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'signed_transaction': json['signed_transaction'], - }; -} - -export function RosettaConstructionHashRequestToJSON(value?: RosettaConstructionHashRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'signed_transaction': value.signed_transaction, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionHashResponse.ts b/client/src/generated/models/RosettaConstructionHashResponse.ts deleted file mode 100644 index 9b05d8e3a..000000000 --- a/client/src/generated/models/RosettaConstructionHashResponse.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - TransactionIdentifier, - TransactionIdentifierFromJSON, - TransactionIdentifierFromJSONTyped, - TransactionIdentifierToJSON, -} from './'; - -/** - * TransactionIdentifier contains the transaction_identifier of a transaction that was submitted to either /construction/hash or /construction/submit. - * @export - * @interface RosettaConstructionHashResponse - */ -export interface RosettaConstructionHashResponse { - /** - * - * @type {TransactionIdentifier} - * @memberof RosettaConstructionHashResponse - */ - transaction_identifier: TransactionIdentifier; - /** - * - * @type {object} - * @memberof RosettaConstructionHashResponse - */ - metadata?: object; -} - -export function RosettaConstructionHashResponseFromJSON(json: any): RosettaConstructionHashResponse { - return RosettaConstructionHashResponseFromJSONTyped(json, false); -} - -export function RosettaConstructionHashResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionHashResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transaction_identifier': TransactionIdentifierFromJSON(json['transaction_identifier']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaConstructionHashResponseToJSON(value?: RosettaConstructionHashResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transaction_identifier': TransactionIdentifierToJSON(value.transaction_identifier), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionMetadataRequest.ts b/client/src/generated/models/RosettaConstructionMetadataRequest.ts deleted file mode 100644 index 6af1d813b..000000000 --- a/client/src/generated/models/RosettaConstructionMetadataRequest.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, - RosettaOptions, - RosettaOptionsFromJSON, - RosettaOptionsFromJSONTyped, - RosettaOptionsToJSON, - RosettaPublicKey, - RosettaPublicKeyFromJSON, - RosettaPublicKeyFromJSONTyped, - RosettaPublicKeyToJSON, -} from './'; - -/** - * A ConstructionMetadataRequest is utilized to get information required to construct a transaction. The Options object used to specify which metadata to return is left purposely unstructured to allow flexibility for implementers. Optionally, the request can also include an array of PublicKeys associated with the AccountIdentifiers returned in ConstructionPreprocessResponse. - * @export - * @interface RosettaConstructionMetadataRequest - */ -export interface RosettaConstructionMetadataRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaConstructionMetadataRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {RosettaOptions} - * @memberof RosettaConstructionMetadataRequest - */ - options: RosettaOptions; - /** - * - * @type {Array} - * @memberof RosettaConstructionMetadataRequest - */ - public_keys?: Array; -} - -export function RosettaConstructionMetadataRequestFromJSON(json: any): RosettaConstructionMetadataRequest { - return RosettaConstructionMetadataRequestFromJSONTyped(json, false); -} - -export function RosettaConstructionMetadataRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionMetadataRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'options': RosettaOptionsFromJSON(json['options']), - 'public_keys': !exists(json, 'public_keys') ? undefined : ((json['public_keys'] as Array).map(RosettaPublicKeyFromJSON)), - }; -} - -export function RosettaConstructionMetadataRequestToJSON(value?: RosettaConstructionMetadataRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'options': RosettaOptionsToJSON(value.options), - 'public_keys': value.public_keys === undefined ? undefined : ((value.public_keys as Array).map(RosettaPublicKeyToJSON)), - }; -} - diff --git a/client/src/generated/models/RosettaConstructionMetadataResponse.ts b/client/src/generated/models/RosettaConstructionMetadataResponse.ts deleted file mode 100644 index c81894614..000000000 --- a/client/src/generated/models/RosettaConstructionMetadataResponse.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAmount, - RosettaAmountFromJSON, - RosettaAmountFromJSONTyped, - RosettaAmountToJSON, - RosettaConstructionMetadataResponseMetadata, - RosettaConstructionMetadataResponseMetadataFromJSON, - RosettaConstructionMetadataResponseMetadataFromJSONTyped, - RosettaConstructionMetadataResponseMetadataToJSON, -} from './'; - -/** - * The ConstructionMetadataResponse returns network-specific metadata used for transaction construction. Optionally, the implementer can return the suggested fee associated with the transaction being constructed. The caller may use this info to adjust the intent of the transaction or to create a transaction with a different account that can pay the suggested fee. Suggested fee is an array in case fee payment must occur in multiple currencies. - * @export - * @interface RosettaConstructionMetadataResponse - */ -export interface RosettaConstructionMetadataResponse { - /** - * - * @type {RosettaConstructionMetadataResponseMetadata} - * @memberof RosettaConstructionMetadataResponse - */ - metadata: RosettaConstructionMetadataResponseMetadata; - /** - * - * @type {Array} - * @memberof RosettaConstructionMetadataResponse - */ - suggested_fee?: Array; -} - -export function RosettaConstructionMetadataResponseFromJSON(json: any): RosettaConstructionMetadataResponse { - return RosettaConstructionMetadataResponseFromJSONTyped(json, false); -} - -export function RosettaConstructionMetadataResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionMetadataResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'metadata': RosettaConstructionMetadataResponseMetadataFromJSON(json['metadata']), - 'suggested_fee': !exists(json, 'suggested_fee') ? undefined : ((json['suggested_fee'] as Array).map(RosettaAmountFromJSON)), - }; -} - -export function RosettaConstructionMetadataResponseToJSON(value?: RosettaConstructionMetadataResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'metadata': RosettaConstructionMetadataResponseMetadataToJSON(value.metadata), - 'suggested_fee': value.suggested_fee === undefined ? undefined : ((value.suggested_fee as Array).map(RosettaAmountToJSON)), - }; -} - diff --git a/client/src/generated/models/RosettaConstructionMetadataResponseMetadata.ts b/client/src/generated/models/RosettaConstructionMetadataResponseMetadata.ts deleted file mode 100644 index 41619da36..000000000 --- a/client/src/generated/models/RosettaConstructionMetadataResponseMetadata.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface RosettaConstructionMetadataResponseMetadata - */ -export interface RosettaConstructionMetadataResponseMetadata { - /** - * - * @type {number} - * @memberof RosettaConstructionMetadataResponseMetadata - */ - account_sequence?: number; - /** - * - * @type {string} - * @memberof RosettaConstructionMetadataResponseMetadata - */ - recent_block_hash?: string; -} - -export function RosettaConstructionMetadataResponseMetadataFromJSON(json: any): RosettaConstructionMetadataResponseMetadata { - return RosettaConstructionMetadataResponseMetadataFromJSONTyped(json, false); -} - -export function RosettaConstructionMetadataResponseMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionMetadataResponseMetadata { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'account_sequence': !exists(json, 'account_sequence') ? undefined : json['account_sequence'], - 'recent_block_hash': !exists(json, 'recent_block_hash') ? undefined : json['recent_block_hash'], - }; -} - -export function RosettaConstructionMetadataResponseMetadataToJSON(value?: RosettaConstructionMetadataResponseMetadata | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'account_sequence': value.account_sequence, - 'recent_block_hash': value.recent_block_hash, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionParseRequest.ts b/client/src/generated/models/RosettaConstructionParseRequest.ts deleted file mode 100644 index 8056092f7..000000000 --- a/client/src/generated/models/RosettaConstructionParseRequest.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, -} from './'; - -/** - * Parse is called on both unsigned and signed transactions to understand the intent of the formulated transaction. This is run as a sanity check before signing (after /construction/payloads) and before broadcast (after /construction/combine). - * @export - * @interface RosettaConstructionParseRequest - */ -export interface RosettaConstructionParseRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaConstructionParseRequest - */ - network_identifier: NetworkIdentifier; - /** - * Signed is a boolean indicating whether the transaction is signed. - * @type {boolean} - * @memberof RosettaConstructionParseRequest - */ - signed: boolean; - /** - * This must be either the unsigned transaction blob returned by /construction/payloads or the signed transaction blob returned by /construction/combine. - * @type {string} - * @memberof RosettaConstructionParseRequest - */ - transaction: string; -} - -export function RosettaConstructionParseRequestFromJSON(json: any): RosettaConstructionParseRequest { - return RosettaConstructionParseRequestFromJSONTyped(json, false); -} - -export function RosettaConstructionParseRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionParseRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'signed': json['signed'], - 'transaction': json['transaction'], - }; -} - -export function RosettaConstructionParseRequestToJSON(value?: RosettaConstructionParseRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'signed': value.signed, - 'transaction': value.transaction, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionParseResponse.ts b/client/src/generated/models/RosettaConstructionParseResponse.ts deleted file mode 100644 index b959cabf2..000000000 --- a/client/src/generated/models/RosettaConstructionParseResponse.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAccountIdentifier, - RosettaAccountIdentifierFromJSON, - RosettaAccountIdentifierFromJSONTyped, - RosettaAccountIdentifierToJSON, - RosettaOperation, - RosettaOperationFromJSON, - RosettaOperationFromJSONTyped, - RosettaOperationToJSON, -} from './'; - -/** - * RosettaConstructionParseResponse contains an array of operations that occur in a transaction blob. This should match the array of operations provided to /construction/preprocess and /construction/payloads. - * @export - * @interface RosettaConstructionParseResponse - */ -export interface RosettaConstructionParseResponse { - /** - * - * @type {Array} - * @memberof RosettaConstructionParseResponse - */ - operations: Array; - /** - * [DEPRECATED by account_identifier_signers in v1.4.4] All signers (addresses) of a particular transaction. If the transaction is unsigned, it should be empty. - * @type {Array} - * @memberof RosettaConstructionParseResponse - */ - signers?: Array; - /** - * - * @type {Array} - * @memberof RosettaConstructionParseResponse - */ - account_identifier_signers?: Array; - /** - * - * @type {object} - * @memberof RosettaConstructionParseResponse - */ - metadata?: object; -} - -export function RosettaConstructionParseResponseFromJSON(json: any): RosettaConstructionParseResponse { - return RosettaConstructionParseResponseFromJSONTyped(json, false); -} - -export function RosettaConstructionParseResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionParseResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'operations': ((json['operations'] as Array).map(RosettaOperationFromJSON)), - 'signers': !exists(json, 'signers') ? undefined : json['signers'], - 'account_identifier_signers': !exists(json, 'account_identifier_signers') ? undefined : ((json['account_identifier_signers'] as Array).map(RosettaAccountIdentifierFromJSON)), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaConstructionParseResponseToJSON(value?: RosettaConstructionParseResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'operations': ((value.operations as Array).map(RosettaOperationToJSON)), - 'signers': value.signers, - 'account_identifier_signers': value.account_identifier_signers === undefined ? undefined : ((value.account_identifier_signers as Array).map(RosettaAccountIdentifierToJSON)), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionPayloadResponse.ts b/client/src/generated/models/RosettaConstructionPayloadResponse.ts deleted file mode 100644 index 40e208cc8..000000000 --- a/client/src/generated/models/RosettaConstructionPayloadResponse.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - SigningPayload, - SigningPayloadFromJSON, - SigningPayloadFromJSONTyped, - SigningPayloadToJSON, -} from './'; - -/** - * RosettaConstructionPayloadResponse is returned by /construction/payloads. It contains an unsigned transaction blob (that is usually needed to construct the a network transaction from a collection of signatures) and an array of payloads that must be signed by the caller. - * @export - * @interface RosettaConstructionPayloadResponse - */ -export interface RosettaConstructionPayloadResponse { - /** - * This is an unsigned transaction blob (that is usually needed to construct the a network transaction from a collection of signatures) - * @type {string} - * @memberof RosettaConstructionPayloadResponse - */ - unsigned_transaction: string; - /** - * An array of payloads that must be signed by the caller - * @type {Array} - * @memberof RosettaConstructionPayloadResponse - */ - payloads: Array; -} - -export function RosettaConstructionPayloadResponseFromJSON(json: any): RosettaConstructionPayloadResponse { - return RosettaConstructionPayloadResponseFromJSONTyped(json, false); -} - -export function RosettaConstructionPayloadResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionPayloadResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'unsigned_transaction': json['unsigned_transaction'], - 'payloads': ((json['payloads'] as Array).map(SigningPayloadFromJSON)), - }; -} - -export function RosettaConstructionPayloadResponseToJSON(value?: RosettaConstructionPayloadResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'unsigned_transaction': value.unsigned_transaction, - 'payloads': ((value.payloads as Array).map(SigningPayloadToJSON)), - }; -} - diff --git a/client/src/generated/models/RosettaConstructionPayloadsRequest.ts b/client/src/generated/models/RosettaConstructionPayloadsRequest.ts deleted file mode 100644 index 3192753a6..000000000 --- a/client/src/generated/models/RosettaConstructionPayloadsRequest.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, - RosettaConstructionMetadataResponseMetadata, - RosettaConstructionMetadataResponseMetadataFromJSON, - RosettaConstructionMetadataResponseMetadataFromJSONTyped, - RosettaConstructionMetadataResponseMetadataToJSON, - RosettaOperation, - RosettaOperationFromJSON, - RosettaOperationFromJSONTyped, - RosettaOperationToJSON, - RosettaPublicKey, - RosettaPublicKeyFromJSON, - RosettaPublicKeyFromJSONTyped, - RosettaPublicKeyToJSON, -} from './'; - -/** - * ConstructionPayloadsRequest is the request to /construction/payloads. It contains the network, a slice of operations, and arbitrary metadata that was returned by the call to /construction/metadata. Optionally, the request can also include an array of PublicKeys associated with the AccountIdentifiers returned in ConstructionPreprocessResponse. - * @export - * @interface RosettaConstructionPayloadsRequest - */ -export interface RosettaConstructionPayloadsRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaConstructionPayloadsRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {Array} - * @memberof RosettaConstructionPayloadsRequest - */ - operations: Array; - /** - * - * @type {Array} - * @memberof RosettaConstructionPayloadsRequest - */ - public_keys?: Array; - /** - * - * @type {RosettaConstructionMetadataResponseMetadata} - * @memberof RosettaConstructionPayloadsRequest - */ - metadata?: RosettaConstructionMetadataResponseMetadata; -} - -export function RosettaConstructionPayloadsRequestFromJSON(json: any): RosettaConstructionPayloadsRequest { - return RosettaConstructionPayloadsRequestFromJSONTyped(json, false); -} - -export function RosettaConstructionPayloadsRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionPayloadsRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'operations': ((json['operations'] as Array).map(RosettaOperationFromJSON)), - 'public_keys': !exists(json, 'public_keys') ? undefined : ((json['public_keys'] as Array).map(RosettaPublicKeyFromJSON)), - 'metadata': !exists(json, 'metadata') ? undefined : RosettaConstructionMetadataResponseMetadataFromJSON(json['metadata']), - }; -} - -export function RosettaConstructionPayloadsRequestToJSON(value?: RosettaConstructionPayloadsRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'operations': ((value.operations as Array).map(RosettaOperationToJSON)), - 'public_keys': value.public_keys === undefined ? undefined : ((value.public_keys as Array).map(RosettaPublicKeyToJSON)), - 'metadata': RosettaConstructionMetadataResponseMetadataToJSON(value.metadata), - }; -} - diff --git a/client/src/generated/models/RosettaConstructionPreprocessRequest.ts b/client/src/generated/models/RosettaConstructionPreprocessRequest.ts deleted file mode 100644 index 97afbc15e..000000000 --- a/client/src/generated/models/RosettaConstructionPreprocessRequest.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, - RosettaMaxFeeAmount, - RosettaMaxFeeAmountFromJSON, - RosettaMaxFeeAmountFromJSONTyped, - RosettaMaxFeeAmountToJSON, - RosettaOperation, - RosettaOperationFromJSON, - RosettaOperationFromJSONTyped, - RosettaOperationToJSON, -} from './'; - -/** - * ConstructionPreprocessRequest is passed to the /construction/preprocess endpoint so that a Rosetta implementation can determine which metadata it needs to request for construction - * @export - * @interface RosettaConstructionPreprocessRequest - */ -export interface RosettaConstructionPreprocessRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaConstructionPreprocessRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {Array} - * @memberof RosettaConstructionPreprocessRequest - */ - operations: Array; - /** - * - * @type {object} - * @memberof RosettaConstructionPreprocessRequest - */ - metadata?: object; - /** - * - * @type {Array} - * @memberof RosettaConstructionPreprocessRequest - */ - max_fee?: Array; - /** - * The caller can also provide a suggested fee multiplier to indicate that the suggested fee should be scaled. This may be used to set higher fees for urgent transactions or to pay lower fees when there is less urgency. It is assumed that providing a very low multiplier (like 0.0001) will never lead to a transaction being created with a fee less than the minimum network fee (if applicable). In the case that the caller provides both a max fee and a suggested fee multiplier, the max fee will set an upper bound on the suggested fee (regardless of the multiplier provided). - * @type {number} - * @memberof RosettaConstructionPreprocessRequest - */ - suggested_fee_multiplier?: number; -} - -export function RosettaConstructionPreprocessRequestFromJSON(json: any): RosettaConstructionPreprocessRequest { - return RosettaConstructionPreprocessRequestFromJSONTyped(json, false); -} - -export function RosettaConstructionPreprocessRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionPreprocessRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'operations': ((json['operations'] as Array).map(RosettaOperationFromJSON)), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - 'max_fee': !exists(json, 'max_fee') ? undefined : ((json['max_fee'] as Array).map(RosettaMaxFeeAmountFromJSON)), - 'suggested_fee_multiplier': !exists(json, 'suggested_fee_multiplier') ? undefined : json['suggested_fee_multiplier'], - }; -} - -export function RosettaConstructionPreprocessRequestToJSON(value?: RosettaConstructionPreprocessRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'operations': ((value.operations as Array).map(RosettaOperationToJSON)), - 'metadata': value.metadata, - 'max_fee': value.max_fee === undefined ? undefined : ((value.max_fee as Array).map(RosettaMaxFeeAmountToJSON)), - 'suggested_fee_multiplier': value.suggested_fee_multiplier, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionPreprocessResponse.ts b/client/src/generated/models/RosettaConstructionPreprocessResponse.ts deleted file mode 100644 index d83b7f003..000000000 --- a/client/src/generated/models/RosettaConstructionPreprocessResponse.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAccount, - RosettaAccountFromJSON, - RosettaAccountFromJSONTyped, - RosettaAccountToJSON, - RosettaOptions, - RosettaOptionsFromJSON, - RosettaOptionsFromJSONTyped, - RosettaOptionsToJSON, -} from './'; - -/** - * RosettaConstructionPreprocessResponse contains options that will be sent unmodified to /construction/metadata. If it is not necessary to make a request to /construction/metadata, options should be omitted. Some blockchains require the PublicKey of particular AccountIdentifiers to construct a valid transaction. To fetch these PublicKeys, populate required_public_keys with the AccountIdentifiers associated with the desired PublicKeys. If it is not necessary to retrieve any PublicKeys for construction, required_public_keys should be omitted. - * @export - * @interface RosettaConstructionPreprocessResponse - */ -export interface RosettaConstructionPreprocessResponse { - /** - * - * @type {RosettaOptions} - * @memberof RosettaConstructionPreprocessResponse - */ - options?: RosettaOptions; - /** - * - * @type {Array} - * @memberof RosettaConstructionPreprocessResponse - */ - required_public_keys?: Array; -} - -export function RosettaConstructionPreprocessResponseFromJSON(json: any): RosettaConstructionPreprocessResponse { - return RosettaConstructionPreprocessResponseFromJSONTyped(json, false); -} - -export function RosettaConstructionPreprocessResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionPreprocessResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'options': !exists(json, 'options') ? undefined : RosettaOptionsFromJSON(json['options']), - 'required_public_keys': !exists(json, 'required_public_keys') ? undefined : ((json['required_public_keys'] as Array).map(RosettaAccountFromJSON)), - }; -} - -export function RosettaConstructionPreprocessResponseToJSON(value?: RosettaConstructionPreprocessResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'options': RosettaOptionsToJSON(value.options), - 'required_public_keys': value.required_public_keys === undefined ? undefined : ((value.required_public_keys as Array).map(RosettaAccountToJSON)), - }; -} - diff --git a/client/src/generated/models/RosettaConstructionSubmitRequest.ts b/client/src/generated/models/RosettaConstructionSubmitRequest.ts deleted file mode 100644 index a1d86391f..000000000 --- a/client/src/generated/models/RosettaConstructionSubmitRequest.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, -} from './'; - -/** - * Submit the transaction in blockchain - * @export - * @interface RosettaConstructionSubmitRequest - */ -export interface RosettaConstructionSubmitRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaConstructionSubmitRequest - */ - network_identifier: NetworkIdentifier; - /** - * Signed transaction - * @type {string} - * @memberof RosettaConstructionSubmitRequest - */ - signed_transaction: string; -} - -export function RosettaConstructionSubmitRequestFromJSON(json: any): RosettaConstructionSubmitRequest { - return RosettaConstructionSubmitRequestFromJSONTyped(json, false); -} - -export function RosettaConstructionSubmitRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionSubmitRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'signed_transaction': json['signed_transaction'], - }; -} - -export function RosettaConstructionSubmitRequestToJSON(value?: RosettaConstructionSubmitRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'signed_transaction': value.signed_transaction, - }; -} - diff --git a/client/src/generated/models/RosettaConstructionSubmitResponse.ts b/client/src/generated/models/RosettaConstructionSubmitResponse.ts deleted file mode 100644 index 2dd054d58..000000000 --- a/client/src/generated/models/RosettaConstructionSubmitResponse.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - TransactionIdentifier, - TransactionIdentifierFromJSON, - TransactionIdentifierFromJSONTyped, - TransactionIdentifierToJSON, -} from './'; - -/** - * TransactionIdentifier contains the transaction_identifier of a transaction that was submitted to either /construction/submit. - * @export - * @interface RosettaConstructionSubmitResponse - */ -export interface RosettaConstructionSubmitResponse { - /** - * - * @type {TransactionIdentifier} - * @memberof RosettaConstructionSubmitResponse - */ - transaction_identifier: TransactionIdentifier; - /** - * - * @type {object} - * @memberof RosettaConstructionSubmitResponse - */ - metadata?: object; -} - -export function RosettaConstructionSubmitResponseFromJSON(json: any): RosettaConstructionSubmitResponse { - return RosettaConstructionSubmitResponseFromJSONTyped(json, false); -} - -export function RosettaConstructionSubmitResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaConstructionSubmitResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transaction_identifier': TransactionIdentifierFromJSON(json['transaction_identifier']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaConstructionSubmitResponseToJSON(value?: RosettaConstructionSubmitResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transaction_identifier': TransactionIdentifierToJSON(value.transaction_identifier), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaCurrency.ts b/client/src/generated/models/RosettaCurrency.ts deleted file mode 100644 index 911b731ee..000000000 --- a/client/src/generated/models/RosettaCurrency.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Currency is composed of a canonical Symbol and Decimals. This Decimals value is used to convert an Amount.Value from atomic units (Satoshis) to standard units (Bitcoins). - * @export - * @interface RosettaCurrency - */ -export interface RosettaCurrency { - /** - * Canonical symbol associated with a currency. - * @type {string} - * @memberof RosettaCurrency - */ - symbol: string; - /** - * Number of decimal places in the standard unit representation of the amount. For example, BTC has 8 decimals. Note that it is not possible to represent the value of some currency in atomic units that is not base 10. - * @type {number} - * @memberof RosettaCurrency - */ - decimals: number; - /** - * Any additional information related to the currency itself. For example, it would be useful to populate this object with the contract address of an ERC-20 token. - * @type {object} - * @memberof RosettaCurrency - */ - metadata?: object; -} - -export function RosettaCurrencyFromJSON(json: any): RosettaCurrency { - return RosettaCurrencyFromJSONTyped(json, false); -} - -export function RosettaCurrencyFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaCurrency { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'symbol': json['symbol'], - 'decimals': json['decimals'], - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaCurrencyToJSON(value?: RosettaCurrency | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'symbol': value.symbol, - 'decimals': value.decimals, - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaError.ts b/client/src/generated/models/RosettaError.ts deleted file mode 100644 index 21854759b..000000000 --- a/client/src/generated/models/RosettaError.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaErrorDetails, - RosettaErrorDetailsFromJSON, - RosettaErrorDetailsFromJSONTyped, - RosettaErrorDetailsToJSON, -} from './'; - -/** - * Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields. - * @export - * @interface RosettaError - */ -export interface RosettaError { - /** - * Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code. - * @type {number} - * @memberof RosettaError - */ - code: number; - /** - * Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field. - * @type {string} - * @memberof RosettaError - */ - message: string; - /** - * An error is retriable if the same request may succeed if submitted again. - * @type {boolean} - * @memberof RosettaError - */ - retriable: boolean; - /** - * - * @type {RosettaErrorDetails} - * @memberof RosettaError - */ - details?: RosettaErrorDetails; -} - -export function RosettaErrorFromJSON(json: any): RosettaError { - return RosettaErrorFromJSONTyped(json, false); -} - -export function RosettaErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaError { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'code': json['code'], - 'message': json['message'], - 'retriable': json['retriable'], - 'details': !exists(json, 'details') ? undefined : RosettaErrorDetailsFromJSON(json['details']), - }; -} - -export function RosettaErrorToJSON(value?: RosettaError | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'code': value.code, - 'message': value.message, - 'retriable': value.retriable, - 'details': RosettaErrorDetailsToJSON(value.details), - }; -} - diff --git a/client/src/generated/models/RosettaErrorDetails.ts b/client/src/generated/models/RosettaErrorDetails.ts deleted file mode 100644 index 67728872f..000000000 --- a/client/src/generated/models/RosettaErrorDetails.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Often times it is useful to return context specific to the request that caused the error (i.e. a sample of the stack trace or impacted account) in addition to the standard error message. - * @export - * @interface RosettaErrorDetails - */ -export interface RosettaErrorDetails { - /** - * - * @type {string} - * @memberof RosettaErrorDetails - */ - address?: string; - /** - * - * @type {string} - * @memberof RosettaErrorDetails - */ - error?: string; -} - -export function RosettaErrorDetailsFromJSON(json: any): RosettaErrorDetails { - return RosettaErrorDetailsFromJSONTyped(json, false); -} - -export function RosettaErrorDetailsFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaErrorDetails { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'address': !exists(json, 'address') ? undefined : json['address'], - 'error': !exists(json, 'error') ? undefined : json['error'], - }; -} - -export function RosettaErrorDetailsToJSON(value?: RosettaErrorDetails | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'address': value.address, - 'error': value.error, - }; -} - diff --git a/client/src/generated/models/RosettaErrorNoDetails.ts b/client/src/generated/models/RosettaErrorNoDetails.ts deleted file mode 100644 index a0c427114..000000000 --- a/client/src/generated/models/RosettaErrorNoDetails.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields. - * @export - * @interface RosettaErrorNoDetails - */ -export interface RosettaErrorNoDetails { - /** - * Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code. - * @type {number} - * @memberof RosettaErrorNoDetails - */ - code: number; - /** - * Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field. - * @type {string} - * @memberof RosettaErrorNoDetails - */ - message: string; - /** - * An error is retriable if the same request may succeed if submitted again. - * @type {boolean} - * @memberof RosettaErrorNoDetails - */ - retriable: boolean; -} - -export function RosettaErrorNoDetailsFromJSON(json: any): RosettaErrorNoDetails { - return RosettaErrorNoDetailsFromJSONTyped(json, false); -} - -export function RosettaErrorNoDetailsFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaErrorNoDetails { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'code': json['code'], - 'message': json['message'], - 'retriable': json['retriable'], - }; -} - -export function RosettaErrorNoDetailsToJSON(value?: RosettaErrorNoDetails | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'code': value.code, - 'message': value.message, - 'retriable': value.retriable, - }; -} - diff --git a/client/src/generated/models/RosettaGenesisBlockIdentifier.ts b/client/src/generated/models/RosettaGenesisBlockIdentifier.ts deleted file mode 100644 index e733434cd..000000000 --- a/client/src/generated/models/RosettaGenesisBlockIdentifier.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The block_identifier uniquely identifies a block in a particular network. - * @export - * @interface RosettaGenesisBlockIdentifier - */ -export interface RosettaGenesisBlockIdentifier { - /** - * This is also known as the block height. - * @type {number} - * @memberof RosettaGenesisBlockIdentifier - */ - index: number; - /** - * Block hash - * @type {string} - * @memberof RosettaGenesisBlockIdentifier - */ - hash: string; -} - -export function RosettaGenesisBlockIdentifierFromJSON(json: any): RosettaGenesisBlockIdentifier { - return RosettaGenesisBlockIdentifierFromJSONTyped(json, false); -} - -export function RosettaGenesisBlockIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaGenesisBlockIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'index': json['index'], - 'hash': json['hash'], - }; -} - -export function RosettaGenesisBlockIdentifierToJSON(value?: RosettaGenesisBlockIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'index': value.index, - 'hash': value.hash, - }; -} - diff --git a/client/src/generated/models/RosettaMaxFeeAmount.ts b/client/src/generated/models/RosettaMaxFeeAmount.ts deleted file mode 100644 index 71e15a10b..000000000 --- a/client/src/generated/models/RosettaMaxFeeAmount.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaCurrency, - RosettaCurrencyFromJSON, - RosettaCurrencyFromJSONTyped, - RosettaCurrencyToJSON, -} from './'; - -/** - * Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency. - * @export - * @interface RosettaMaxFeeAmount - */ -export interface RosettaMaxFeeAmount { - /** - * Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000. - * @type {string} - * @memberof RosettaMaxFeeAmount - */ - value: string; - /** - * - * @type {RosettaCurrency} - * @memberof RosettaMaxFeeAmount - */ - currency: RosettaCurrency; - /** - * - * @type {object} - * @memberof RosettaMaxFeeAmount - */ - metadata?: object; -} - -export function RosettaMaxFeeAmountFromJSON(json: any): RosettaMaxFeeAmount { - return RosettaMaxFeeAmountFromJSONTyped(json, false); -} - -export function RosettaMaxFeeAmountFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaMaxFeeAmount { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'value': json['value'], - 'currency': RosettaCurrencyFromJSON(json['currency']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaMaxFeeAmountToJSON(value?: RosettaMaxFeeAmount | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'value': value.value, - 'currency': RosettaCurrencyToJSON(value.currency), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaMempoolRequest.ts b/client/src/generated/models/RosettaMempoolRequest.ts deleted file mode 100644 index ba1ab8234..000000000 --- a/client/src/generated/models/RosettaMempoolRequest.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, -} from './'; - -/** - * Get all Transaction Identifiers in the mempool - * @export - * @interface RosettaMempoolRequest - */ -export interface RosettaMempoolRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaMempoolRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {object} - * @memberof RosettaMempoolRequest - */ - metadata?: object; -} - -export function RosettaMempoolRequestFromJSON(json: any): RosettaMempoolRequest { - return RosettaMempoolRequestFromJSONTyped(json, false); -} - -export function RosettaMempoolRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaMempoolRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaMempoolRequestToJSON(value?: RosettaMempoolRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaMempoolResponse.ts b/client/src/generated/models/RosettaMempoolResponse.ts deleted file mode 100644 index 2e7fa178e..000000000 --- a/client/src/generated/models/RosettaMempoolResponse.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - TransactionIdentifier, - TransactionIdentifierFromJSON, - TransactionIdentifierFromJSONTyped, - TransactionIdentifierToJSON, -} from './'; - -/** - * A MempoolResponse contains all transaction identifiers in the mempool for a particular network_identifier. - * @export - * @interface RosettaMempoolResponse - */ -export interface RosettaMempoolResponse { - /** - * - * @type {Array} - * @memberof RosettaMempoolResponse - */ - transaction_identifiers: Array; - /** - * - * @type {object} - * @memberof RosettaMempoolResponse - */ - metadata?: object; -} - -export function RosettaMempoolResponseFromJSON(json: any): RosettaMempoolResponse { - return RosettaMempoolResponseFromJSONTyped(json, false); -} - -export function RosettaMempoolResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaMempoolResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transaction_identifiers': ((json['transaction_identifiers'] as Array).map(TransactionIdentifierFromJSON)), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaMempoolResponseToJSON(value?: RosettaMempoolResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transaction_identifiers': ((value.transaction_identifiers as Array).map(TransactionIdentifierToJSON)), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaMempoolTransactionRequest.ts b/client/src/generated/models/RosettaMempoolTransactionRequest.ts deleted file mode 100644 index 92793a46c..000000000 --- a/client/src/generated/models/RosettaMempoolTransactionRequest.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, - TransactionIdentifier, - TransactionIdentifierFromJSON, - TransactionIdentifierFromJSONTyped, - TransactionIdentifierToJSON, -} from './'; - -/** - * A MempoolTransactionRequest is utilized to retrieve a transaction from the mempool. - * @export - * @interface RosettaMempoolTransactionRequest - */ -export interface RosettaMempoolTransactionRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaMempoolTransactionRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {TransactionIdentifier} - * @memberof RosettaMempoolTransactionRequest - */ - transaction_identifier: TransactionIdentifier; -} - -export function RosettaMempoolTransactionRequestFromJSON(json: any): RosettaMempoolTransactionRequest { - return RosettaMempoolTransactionRequestFromJSONTyped(json, false); -} - -export function RosettaMempoolTransactionRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaMempoolTransactionRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'transaction_identifier': TransactionIdentifierFromJSON(json['transaction_identifier']), - }; -} - -export function RosettaMempoolTransactionRequestToJSON(value?: RosettaMempoolTransactionRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'transaction_identifier': TransactionIdentifierToJSON(value.transaction_identifier), - }; -} - diff --git a/client/src/generated/models/RosettaMempoolTransactionResponse.ts b/client/src/generated/models/RosettaMempoolTransactionResponse.ts deleted file mode 100644 index 6e340106f..000000000 --- a/client/src/generated/models/RosettaMempoolTransactionResponse.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaTransaction, - RosettaTransactionFromJSON, - RosettaTransactionFromJSONTyped, - RosettaTransactionToJSON, -} from './'; - -/** - * A MempoolTransactionResponse contains an estimate of a mempool transaction. It may not be possible to know the full impact of a transaction in the mempool (ex: fee paid). - * @export - * @interface RosettaMempoolTransactionResponse - */ -export interface RosettaMempoolTransactionResponse { - /** - * - * @type {RosettaTransaction} - * @memberof RosettaMempoolTransactionResponse - */ - transaction: RosettaTransaction; - /** - * - * @type {object} - * @memberof RosettaMempoolTransactionResponse - */ - metadata?: object; -} - -export function RosettaMempoolTransactionResponseFromJSON(json: any): RosettaMempoolTransactionResponse { - return RosettaMempoolTransactionResponseFromJSONTyped(json, false); -} - -export function RosettaMempoolTransactionResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaMempoolTransactionResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transaction': RosettaTransactionFromJSON(json['transaction']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaMempoolTransactionResponseToJSON(value?: RosettaMempoolTransactionResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transaction': RosettaTransactionToJSON(value.transaction), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaNetworkListResponse.ts b/client/src/generated/models/RosettaNetworkListResponse.ts deleted file mode 100644 index ac1cdc134..000000000 --- a/client/src/generated/models/RosettaNetworkListResponse.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, -} from './'; - -/** - * A NetworkListResponse contains all NetworkIdentifiers that the node can serve information for. - * @export - * @interface RosettaNetworkListResponse - */ -export interface RosettaNetworkListResponse { - /** - * The network_identifier specifies which network a particular object is associated with. - * @type {Array} - * @memberof RosettaNetworkListResponse - */ - network_identifiers: Array; -} - -export function RosettaNetworkListResponseFromJSON(json: any): RosettaNetworkListResponse { - return RosettaNetworkListResponseFromJSONTyped(json, false); -} - -export function RosettaNetworkListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaNetworkListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifiers': ((json['network_identifiers'] as Array).map(NetworkIdentifierFromJSON)), - }; -} - -export function RosettaNetworkListResponseToJSON(value?: RosettaNetworkListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifiers': ((value.network_identifiers as Array).map(NetworkIdentifierToJSON)), - }; -} - diff --git a/client/src/generated/models/RosettaNetworkListResponseSubNetworkIdentifier.ts b/client/src/generated/models/RosettaNetworkListResponseSubNetworkIdentifier.ts deleted file mode 100644 index 492919908..000000000 --- a/client/src/generated/models/RosettaNetworkListResponseSubNetworkIdentifier.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaNetworkListResponseSubNetworkIdentifierMetadata, - RosettaNetworkListResponseSubNetworkIdentifierMetadataFromJSON, - RosettaNetworkListResponseSubNetworkIdentifierMetadataFromJSONTyped, - RosettaNetworkListResponseSubNetworkIdentifierMetadataToJSON, -} from './'; - -/** - * In blockchains with sharded state, the SubNetworkIdentifier is required to query some object on a specific shard. This identifier is optional for all non-sharded blockchains. - * @export - * @interface RosettaNetworkListResponseSubNetworkIdentifier - */ -export interface RosettaNetworkListResponseSubNetworkIdentifier { - /** - * Network name - * @type {string} - * @memberof RosettaNetworkListResponseSubNetworkIdentifier - */ - network: string; - /** - * - * @type {RosettaNetworkListResponseSubNetworkIdentifierMetadata} - * @memberof RosettaNetworkListResponseSubNetworkIdentifier - */ - metadata?: RosettaNetworkListResponseSubNetworkIdentifierMetadata; -} - -export function RosettaNetworkListResponseSubNetworkIdentifierFromJSON(json: any): RosettaNetworkListResponseSubNetworkIdentifier { - return RosettaNetworkListResponseSubNetworkIdentifierFromJSONTyped(json, false); -} - -export function RosettaNetworkListResponseSubNetworkIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaNetworkListResponseSubNetworkIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network': json['network'], - 'metadata': !exists(json, 'metadata') ? undefined : RosettaNetworkListResponseSubNetworkIdentifierMetadataFromJSON(json['metadata']), - }; -} - -export function RosettaNetworkListResponseSubNetworkIdentifierToJSON(value?: RosettaNetworkListResponseSubNetworkIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network': value.network, - 'metadata': RosettaNetworkListResponseSubNetworkIdentifierMetadataToJSON(value.metadata), - }; -} - diff --git a/client/src/generated/models/RosettaNetworkListResponseSubNetworkIdentifierMetadata.ts b/client/src/generated/models/RosettaNetworkListResponseSubNetworkIdentifierMetadata.ts deleted file mode 100644 index c2ab08cfa..000000000 --- a/client/src/generated/models/RosettaNetworkListResponseSubNetworkIdentifierMetadata.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Meta data from subnetwork identifier - * @export - * @interface RosettaNetworkListResponseSubNetworkIdentifierMetadata - */ -export interface RosettaNetworkListResponseSubNetworkIdentifierMetadata { - /** - * producer - * @type {string} - * @memberof RosettaNetworkListResponseSubNetworkIdentifierMetadata - */ - producer: string; -} - -export function RosettaNetworkListResponseSubNetworkIdentifierMetadataFromJSON(json: any): RosettaNetworkListResponseSubNetworkIdentifierMetadata { - return RosettaNetworkListResponseSubNetworkIdentifierMetadataFromJSONTyped(json, false); -} - -export function RosettaNetworkListResponseSubNetworkIdentifierMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaNetworkListResponseSubNetworkIdentifierMetadata { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'producer': json['producer'], - }; -} - -export function RosettaNetworkListResponseSubNetworkIdentifierMetadataToJSON(value?: RosettaNetworkListResponseSubNetworkIdentifierMetadata | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'producer': value.producer, - }; -} - diff --git a/client/src/generated/models/RosettaNetworkOptionsResponse.ts b/client/src/generated/models/RosettaNetworkOptionsResponse.ts deleted file mode 100644 index 993b81c19..000000000 --- a/client/src/generated/models/RosettaNetworkOptionsResponse.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaNetworkOptionsResponseAllow, - RosettaNetworkOptionsResponseAllowFromJSON, - RosettaNetworkOptionsResponseAllowFromJSONTyped, - RosettaNetworkOptionsResponseAllowToJSON, - RosettaNetworkOptionsResponseVersion, - RosettaNetworkOptionsResponseVersionFromJSON, - RosettaNetworkOptionsResponseVersionFromJSONTyped, - RosettaNetworkOptionsResponseVersionToJSON, -} from './'; - -/** - * NetworkOptionsResponse contains information about the versioning of the node and the allowed operation statuses, operation types, and errors. - * @export - * @interface RosettaNetworkOptionsResponse - */ -export interface RosettaNetworkOptionsResponse { - /** - * - * @type {RosettaNetworkOptionsResponseVersion} - * @memberof RosettaNetworkOptionsResponse - */ - version: RosettaNetworkOptionsResponseVersion; - /** - * - * @type {RosettaNetworkOptionsResponseAllow} - * @memberof RosettaNetworkOptionsResponse - */ - allow: RosettaNetworkOptionsResponseAllow; -} - -export function RosettaNetworkOptionsResponseFromJSON(json: any): RosettaNetworkOptionsResponse { - return RosettaNetworkOptionsResponseFromJSONTyped(json, false); -} - -export function RosettaNetworkOptionsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaNetworkOptionsResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'version': RosettaNetworkOptionsResponseVersionFromJSON(json['version']), - 'allow': RosettaNetworkOptionsResponseAllowFromJSON(json['allow']), - }; -} - -export function RosettaNetworkOptionsResponseToJSON(value?: RosettaNetworkOptionsResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'version': RosettaNetworkOptionsResponseVersionToJSON(value.version), - 'allow': RosettaNetworkOptionsResponseAllowToJSON(value.allow), - }; -} - diff --git a/client/src/generated/models/RosettaNetworkOptionsResponseAllow.ts b/client/src/generated/models/RosettaNetworkOptionsResponseAllow.ts deleted file mode 100644 index 779157a2d..000000000 --- a/client/src/generated/models/RosettaNetworkOptionsResponseAllow.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaErrorNoDetails, - RosettaErrorNoDetailsFromJSON, - RosettaErrorNoDetailsFromJSONTyped, - RosettaErrorNoDetailsToJSON, - RosettaOperationStatus, - RosettaOperationStatusFromJSON, - RosettaOperationStatusFromJSONTyped, - RosettaOperationStatusToJSON, -} from './'; - -/** - * Allow specifies supported Operation status, Operation types, and all possible error statuses. This Allow object is used by clients to validate the correctness of a Rosetta Server implementation. It is expected that these clients will error if they receive some response that contains any of the above information that is not specified here. - * @export - * @interface RosettaNetworkOptionsResponseAllow - */ -export interface RosettaNetworkOptionsResponseAllow { - /** - * All Operation.Status this implementation supports. Any status that is returned during parsing that is not listed here will cause client validation to error. - * @type {Array} - * @memberof RosettaNetworkOptionsResponseAllow - */ - operation_statuses: Array; - /** - * All Operation.Type this implementation supports. Any type that is returned during parsing that is not listed here will cause client validation to error. - * @type {Array} - * @memberof RosettaNetworkOptionsResponseAllow - */ - operation_types: Array; - /** - * All Errors that this implementation could return. Any error that is returned during parsing that is not listed here will cause client validation to error. - * @type {Array} - * @memberof RosettaNetworkOptionsResponseAllow - */ - errors: Array; - /** - * Any Rosetta implementation that supports querying the balance of an account at any height in the past should set this to true. - * @type {boolean} - * @memberof RosettaNetworkOptionsResponseAllow - */ - historical_balance_lookup: boolean; -} - -export function RosettaNetworkOptionsResponseAllowFromJSON(json: any): RosettaNetworkOptionsResponseAllow { - return RosettaNetworkOptionsResponseAllowFromJSONTyped(json, false); -} - -export function RosettaNetworkOptionsResponseAllowFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaNetworkOptionsResponseAllow { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'operation_statuses': ((json['operation_statuses'] as Array).map(RosettaOperationStatusFromJSON)), - 'operation_types': json['operation_types'], - 'errors': ((json['errors'] as Array).map(RosettaErrorNoDetailsFromJSON)), - 'historical_balance_lookup': json['historical_balance_lookup'], - }; -} - -export function RosettaNetworkOptionsResponseAllowToJSON(value?: RosettaNetworkOptionsResponseAllow | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'operation_statuses': ((value.operation_statuses as Array).map(RosettaOperationStatusToJSON)), - 'operation_types': value.operation_types, - 'errors': ((value.errors as Array).map(RosettaErrorNoDetailsToJSON)), - 'historical_balance_lookup': value.historical_balance_lookup, - }; -} - diff --git a/client/src/generated/models/RosettaNetworkOptionsResponseVersion.ts b/client/src/generated/models/RosettaNetworkOptionsResponseVersion.ts deleted file mode 100644 index e5dd88e1c..000000000 --- a/client/src/generated/models/RosettaNetworkOptionsResponseVersion.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The Version object is utilized to inform the client of the versions of different components of the Rosetta implementation. - * @export - * @interface RosettaNetworkOptionsResponseVersion - */ -export interface RosettaNetworkOptionsResponseVersion { - /** - * The rosetta_version is the version of the Rosetta interface the implementation adheres to. This can be useful for clients looking to reliably parse responses. - * @type {string} - * @memberof RosettaNetworkOptionsResponseVersion - */ - rosetta_version: string; - /** - * The node_version is the canonical version of the node runtime. This can help clients manage deployments. - * @type {string} - * @memberof RosettaNetworkOptionsResponseVersion - */ - node_version: string; - /** - * When a middleware server is used to adhere to the Rosetta interface, it should return its version here. This can help clients manage deployments. - * @type {string} - * @memberof RosettaNetworkOptionsResponseVersion - */ - middleware_version?: string; - /** - * Any other information that may be useful about versioning of dependent services should be returned here. - * @type {object} - * @memberof RosettaNetworkOptionsResponseVersion - */ - metadata?: object; -} - -export function RosettaNetworkOptionsResponseVersionFromJSON(json: any): RosettaNetworkOptionsResponseVersion { - return RosettaNetworkOptionsResponseVersionFromJSONTyped(json, false); -} - -export function RosettaNetworkOptionsResponseVersionFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaNetworkOptionsResponseVersion { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'rosetta_version': json['rosetta_version'], - 'node_version': json['node_version'], - 'middleware_version': !exists(json, 'middleware_version') ? undefined : json['middleware_version'], - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaNetworkOptionsResponseVersionToJSON(value?: RosettaNetworkOptionsResponseVersion | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'rosetta_version': value.rosetta_version, - 'node_version': value.node_version, - 'middleware_version': value.middleware_version, - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaNetworkStatusResponse.ts b/client/src/generated/models/RosettaNetworkStatusResponse.ts deleted file mode 100644 index f49d0599a..000000000 --- a/client/src/generated/models/RosettaNetworkStatusResponse.ts +++ /dev/null @@ -1,115 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaGenesisBlockIdentifier, - RosettaGenesisBlockIdentifierFromJSON, - RosettaGenesisBlockIdentifierFromJSONTyped, - RosettaGenesisBlockIdentifierToJSON, - RosettaOldestBlockIdentifier, - RosettaOldestBlockIdentifierFromJSON, - RosettaOldestBlockIdentifierFromJSONTyped, - RosettaOldestBlockIdentifierToJSON, - RosettaPeers, - RosettaPeersFromJSON, - RosettaPeersFromJSONTyped, - RosettaPeersToJSON, - RosettaSyncStatus, - RosettaSyncStatusFromJSON, - RosettaSyncStatusFromJSONTyped, - RosettaSyncStatusToJSON, -} from './'; - -/** - * NetworkStatusResponse contains basic information about the node's view of a blockchain network. It is assumed that any BlockIdentifier.Index less than or equal to CurrentBlockIdentifier.Index can be queried. If a Rosetta implementation prunes historical state, it should populate the optional oldest_block_identifier field with the oldest block available to query. If this is not populated, it is assumed that the genesis_block_identifier is the oldest queryable block. If a Rosetta implementation performs some pre-sync before it is possible to query blocks, sync_status should be populated so that clients can still monitor healthiness. Without this field, it may appear that the implementation is stuck syncing and needs to be terminated. - * @export - * @interface RosettaNetworkStatusResponse - */ -export interface RosettaNetworkStatusResponse { - /** - * The block_identifier uniquely identifies a block in a particular network. - * @type {object} - * @memberof RosettaNetworkStatusResponse - */ - current_block_identifier: object | null; - /** - * The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second. - * @type {number} - * @memberof RosettaNetworkStatusResponse - */ - current_block_timestamp: number; - /** - * - * @type {RosettaGenesisBlockIdentifier} - * @memberof RosettaNetworkStatusResponse - */ - genesis_block_identifier: RosettaGenesisBlockIdentifier; - /** - * - * @type {RosettaOldestBlockIdentifier} - * @memberof RosettaNetworkStatusResponse - */ - oldest_block_identifier?: RosettaOldestBlockIdentifier; - /** - * - * @type {RosettaSyncStatus} - * @memberof RosettaNetworkStatusResponse - */ - sync_status?: RosettaSyncStatus; - /** - * Peers information - * @type {Array} - * @memberof RosettaNetworkStatusResponse - */ - peers: Array; -} - -export function RosettaNetworkStatusResponseFromJSON(json: any): RosettaNetworkStatusResponse { - return RosettaNetworkStatusResponseFromJSONTyped(json, false); -} - -export function RosettaNetworkStatusResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaNetworkStatusResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'current_block_identifier': json['current_block_identifier'], - 'current_block_timestamp': json['current_block_timestamp'], - 'genesis_block_identifier': RosettaGenesisBlockIdentifierFromJSON(json['genesis_block_identifier']), - 'oldest_block_identifier': !exists(json, 'oldest_block_identifier') ? undefined : RosettaOldestBlockIdentifierFromJSON(json['oldest_block_identifier']), - 'sync_status': !exists(json, 'sync_status') ? undefined : RosettaSyncStatusFromJSON(json['sync_status']), - 'peers': ((json['peers'] as Array).map(RosettaPeersFromJSON)), - }; -} - -export function RosettaNetworkStatusResponseToJSON(value?: RosettaNetworkStatusResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'current_block_identifier': value.current_block_identifier, - 'current_block_timestamp': value.current_block_timestamp, - 'genesis_block_identifier': RosettaGenesisBlockIdentifierToJSON(value.genesis_block_identifier), - 'oldest_block_identifier': RosettaOldestBlockIdentifierToJSON(value.oldest_block_identifier), - 'sync_status': RosettaSyncStatusToJSON(value.sync_status), - 'peers': ((value.peers as Array).map(RosettaPeersToJSON)), - }; -} - diff --git a/client/src/generated/models/RosettaOldestBlockIdentifier.ts b/client/src/generated/models/RosettaOldestBlockIdentifier.ts deleted file mode 100644 index 3291bafa2..000000000 --- a/client/src/generated/models/RosettaOldestBlockIdentifier.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The block_identifier uniquely identifies a block in a particular network. - * @export - * @interface RosettaOldestBlockIdentifier - */ -export interface RosettaOldestBlockIdentifier { - /** - * This is also known as the block height. - * @type {number} - * @memberof RosettaOldestBlockIdentifier - */ - index: number; - /** - * Block hash - * @type {string} - * @memberof RosettaOldestBlockIdentifier - */ - hash: string; -} - -export function RosettaOldestBlockIdentifierFromJSON(json: any): RosettaOldestBlockIdentifier { - return RosettaOldestBlockIdentifierFromJSONTyped(json, false); -} - -export function RosettaOldestBlockIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaOldestBlockIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'index': json['index'], - 'hash': json['hash'], - }; -} - -export function RosettaOldestBlockIdentifierToJSON(value?: RosettaOldestBlockIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'index': value.index, - 'hash': value.hash, - }; -} - diff --git a/client/src/generated/models/RosettaOperation.ts b/client/src/generated/models/RosettaOperation.ts deleted file mode 100644 index 1935e135d..000000000 --- a/client/src/generated/models/RosettaOperation.ts +++ /dev/null @@ -1,135 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAccount, - RosettaAccountFromJSON, - RosettaAccountFromJSONTyped, - RosettaAccountToJSON, - RosettaAmount, - RosettaAmountFromJSON, - RosettaAmountFromJSONTyped, - RosettaAmountToJSON, - RosettaCoinChange, - RosettaCoinChangeFromJSON, - RosettaCoinChangeFromJSONTyped, - RosettaCoinChangeToJSON, - RosettaOperationIdentifier, - RosettaOperationIdentifierFromJSON, - RosettaOperationIdentifierFromJSONTyped, - RosettaOperationIdentifierToJSON, - RosettaRelatedOperation, - RosettaRelatedOperationFromJSON, - RosettaRelatedOperationFromJSONTyped, - RosettaRelatedOperationToJSON, -} from './'; - -/** - * Operations contain all balance-changing information within a transaction. They are always one-sided (only affect 1 AccountIdentifier) and can succeed or fail independently from a Transaction. - * @export - * @interface RosettaOperation - */ -export interface RosettaOperation { - /** - * - * @type {RosettaOperationIdentifier} - * @memberof RosettaOperation - */ - operation_identifier: RosettaOperationIdentifier; - /** - * Restrict referenced related_operations to identifier indexes < the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree. - * @type {Array} - * @memberof RosettaOperation - */ - related_operations?: Array; - /** - * The network-specific type of the operation. Ensure that any type that can be returned here is also specified in the NetworkStatus. This can be very useful to downstream consumers that parse all block data. - * @type {string} - * @memberof RosettaOperation - */ - type: string; - /** - * The network-specific status of the operation. Status is not defined on the transaction object because blockchains with smart contracts may have transactions that partially apply. Blockchains with atomic transactions (all operations succeed or all operations fail) will have the same status for each operation. - * @type {string} - * @memberof RosettaOperation - */ - status?: string; - /** - * - * @type {RosettaAccount} - * @memberof RosettaOperation - */ - account?: RosettaAccount; - /** - * - * @type {RosettaAmount} - * @memberof RosettaOperation - */ - amount?: RosettaAmount; - /** - * - * @type {RosettaCoinChange} - * @memberof RosettaOperation - */ - coin_change?: RosettaCoinChange; - /** - * Operations Meta Data - * @type {object} - * @memberof RosettaOperation - */ - metadata?: object; -} - -export function RosettaOperationFromJSON(json: any): RosettaOperation { - return RosettaOperationFromJSONTyped(json, false); -} - -export function RosettaOperationFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaOperation { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'operation_identifier': RosettaOperationIdentifierFromJSON(json['operation_identifier']), - 'related_operations': !exists(json, 'related_operations') ? undefined : ((json['related_operations'] as Array).map(RosettaRelatedOperationFromJSON)), - 'type': json['type'], - 'status': !exists(json, 'status') ? undefined : json['status'], - 'account': !exists(json, 'account') ? undefined : RosettaAccountFromJSON(json['account']), - 'amount': !exists(json, 'amount') ? undefined : RosettaAmountFromJSON(json['amount']), - 'coin_change': !exists(json, 'coin_change') ? undefined : RosettaCoinChangeFromJSON(json['coin_change']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaOperationToJSON(value?: RosettaOperation | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'operation_identifier': RosettaOperationIdentifierToJSON(value.operation_identifier), - 'related_operations': value.related_operations === undefined ? undefined : ((value.related_operations as Array).map(RosettaRelatedOperationToJSON)), - 'type': value.type, - 'status': value.status, - 'account': RosettaAccountToJSON(value.account), - 'amount': RosettaAmountToJSON(value.amount), - 'coin_change': RosettaCoinChangeToJSON(value.coin_change), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaOperationIdentifier.ts b/client/src/generated/models/RosettaOperationIdentifier.ts deleted file mode 100644 index b779123b8..000000000 --- a/client/src/generated/models/RosettaOperationIdentifier.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The operation_identifier uniquely identifies an operation within a transaction. - * @export - * @interface RosettaOperationIdentifier - */ -export interface RosettaOperationIdentifier { - /** - * The operation index is used to ensure each operation has a unique identifier within a transaction. This index is only relative to the transaction and NOT GLOBAL. The operations in each transaction should start from index 0. To clarify, there may not be any notion of an operation index in the blockchain being described. - * @type {number} - * @memberof RosettaOperationIdentifier - */ - index: number; - /** - * Some blockchains specify an operation index that is essential for client use. For example, Bitcoin uses a network_index to identify which UTXO was used in a transaction. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains). - * @type {number} - * @memberof RosettaOperationIdentifier - */ - network_index?: number; -} - -export function RosettaOperationIdentifierFromJSON(json: any): RosettaOperationIdentifier { - return RosettaOperationIdentifierFromJSONTyped(json, false); -} - -export function RosettaOperationIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaOperationIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'index': json['index'], - 'network_index': !exists(json, 'network_index') ? undefined : json['network_index'], - }; -} - -export function RosettaOperationIdentifierToJSON(value?: RosettaOperationIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'index': value.index, - 'network_index': value.network_index, - }; -} - diff --git a/client/src/generated/models/RosettaOperationStatus.ts b/client/src/generated/models/RosettaOperationStatus.ts deleted file mode 100644 index f55c4f76f..000000000 --- a/client/src/generated/models/RosettaOperationStatus.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * OperationStatus is utilized to indicate which Operation status are considered successful. - * @export - * @interface RosettaOperationStatus - */ -export interface RosettaOperationStatus { - /** - * The status is the network-specific status of the operation. - * @type {string} - * @memberof RosettaOperationStatus - */ - status: string; - /** - * An Operation is considered successful if the Operation.Amount should affect the Operation.Account. Some blockchains (like Bitcoin) only include successful operations in blocks but other blockchains (like Ethereum) include unsuccessful operations that incur a fee. To reconcile the computed balance from the stream of Operations, it is critical to understand which Operation.Status indicate an Operation is successful and should affect an Account. - * @type {boolean} - * @memberof RosettaOperationStatus - */ - successful: boolean; -} - -export function RosettaOperationStatusFromJSON(json: any): RosettaOperationStatus { - return RosettaOperationStatusFromJSONTyped(json, false); -} - -export function RosettaOperationStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaOperationStatus { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'status': json['status'], - 'successful': json['successful'], - }; -} - -export function RosettaOperationStatusToJSON(value?: RosettaOperationStatus | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'status': value.status, - 'successful': value.successful, - }; -} - diff --git a/client/src/generated/models/RosettaOptions.ts b/client/src/generated/models/RosettaOptions.ts deleted file mode 100644 index d6b777714..000000000 --- a/client/src/generated/models/RosettaOptions.ts +++ /dev/null @@ -1,216 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the [Stacks Blockchain API](https://docs.hiro.so/get-started/stacks-blockchain-api). [Download Postman collection](https://hirosystems.github.io/stacks-blockchain-api/collection.json) - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The options that will be sent directly to /construction/metadata by the caller. - * @export - * @interface RosettaOptions - */ -export interface RosettaOptions { - /** - * sender's address - * @type {string} - * @memberof RosettaOptions - */ - sender_address?: string; - /** - * Type of operation e.g transfer - * @type {string} - * @memberof RosettaOptions - */ - type?: string; - /** - * This value indicates the state of the operations - * @type {string} - * @memberof RosettaOptions - */ - status?: string; - /** - * Recipient's address - * @type {string} - * @memberof RosettaOptions - */ - token_transfer_recipient_address?: string; - /** - * Amount to be transfered. - * @type {string} - * @memberof RosettaOptions - */ - amount?: string; - /** - * Currency symbol e.g STX - * @type {string} - * @memberof RosettaOptions - */ - symbol?: string; - /** - * Number of decimal places - * @type {number} - * @memberof RosettaOptions - */ - decimals?: number; - /** - * Maximum price a user is willing to pay. - * @type {number} - * @memberof RosettaOptions - */ - gas_limit?: number; - /** - * Cost necessary to perform a transaction on the network - * @type {number} - * @memberof RosettaOptions - */ - gas_price?: number; - /** - * A suggested fee multiplier to indicate that the suggested fee should be scaled. This may be used to set higher fees for urgent transactions or to pay lower fees when there is less urgency. - * @type {number} - * @memberof RosettaOptions - */ - suggested_fee_multiplier?: number; - /** - * Maximum fee user is willing to pay - * @type {string} - * @memberof RosettaOptions - */ - max_fee?: string; - /** - * Fee for this transaction - * @type {string} - * @memberof RosettaOptions - */ - fee?: string; - /** - * Transaction approximative size (used to calculate total fee). - * @type {number} - * @memberof RosettaOptions - */ - size?: number; - /** - * STX token transfer memo. - * @type {string} - * @memberof RosettaOptions - */ - memo?: string; - /** - * Number of cycles when stacking. - * @type {number} - * @memberof RosettaOptions - */ - number_of_cycles?: number; - /** - * Address of the contract to call. - * @type {string} - * @memberof RosettaOptions - */ - contract_address?: string; - /** - * Name of the contract to call. - * @type {string} - * @memberof RosettaOptions - */ - contract_name?: string; - /** - * Set the burnchain (BTC) block for stacking lock to start. - * @type {number} - * @memberof RosettaOptions - */ - burn_block_height?: number; - /** - * Delegator address for when calling `delegate-stacking`. - * @type {string} - * @memberof RosettaOptions - */ - delegate_to?: string; - /** - * The reward address for stacking transaction. It should be a valid Bitcoin address - * @type {string} - * @memberof RosettaOptions - */ - pox_addr?: string; - /** - * The hex-encoded signer key (buff 33) for PoX. - * @type {string} - * @memberof RosettaOptions - */ - signer_key?: string; -} - -export function RosettaOptionsFromJSON(json: any): RosettaOptions { - return RosettaOptionsFromJSONTyped(json, false); -} - -export function RosettaOptionsFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaOptions { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'sender_address': !exists(json, 'sender_address') ? undefined : json['sender_address'], - 'type': !exists(json, 'type') ? undefined : json['type'], - 'status': !exists(json, 'status') ? undefined : json['status'], - 'token_transfer_recipient_address': !exists(json, 'token_transfer_recipient_address') ? undefined : json['token_transfer_recipient_address'], - 'amount': !exists(json, 'amount') ? undefined : json['amount'], - 'symbol': !exists(json, 'symbol') ? undefined : json['symbol'], - 'decimals': !exists(json, 'decimals') ? undefined : json['decimals'], - 'gas_limit': !exists(json, 'gas_limit') ? undefined : json['gas_limit'], - 'gas_price': !exists(json, 'gas_price') ? undefined : json['gas_price'], - 'suggested_fee_multiplier': !exists(json, 'suggested_fee_multiplier') ? undefined : json['suggested_fee_multiplier'], - 'max_fee': !exists(json, 'max_fee') ? undefined : json['max_fee'], - 'fee': !exists(json, 'fee') ? undefined : json['fee'], - 'size': !exists(json, 'size') ? undefined : json['size'], - 'memo': !exists(json, 'memo') ? undefined : json['memo'], - 'number_of_cycles': !exists(json, 'number_of_cycles') ? undefined : json['number_of_cycles'], - 'contract_address': !exists(json, 'contract_address') ? undefined : json['contract_address'], - 'contract_name': !exists(json, 'contract_name') ? undefined : json['contract_name'], - 'burn_block_height': !exists(json, 'burn_block_height') ? undefined : json['burn_block_height'], - 'delegate_to': !exists(json, 'delegate_to') ? undefined : json['delegate_to'], - 'pox_addr': !exists(json, 'pox_addr') ? undefined : json['pox_addr'], - 'signer_key': !exists(json, 'signer_key') ? undefined : json['signer_key'], - }; -} - -export function RosettaOptionsToJSON(value?: RosettaOptions | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'sender_address': value.sender_address, - 'type': value.type, - 'status': value.status, - 'token_transfer_recipient_address': value.token_transfer_recipient_address, - 'amount': value.amount, - 'symbol': value.symbol, - 'decimals': value.decimals, - 'gas_limit': value.gas_limit, - 'gas_price': value.gas_price, - 'suggested_fee_multiplier': value.suggested_fee_multiplier, - 'max_fee': value.max_fee, - 'fee': value.fee, - 'size': value.size, - 'memo': value.memo, - 'number_of_cycles': value.number_of_cycles, - 'contract_address': value.contract_address, - 'contract_name': value.contract_name, - 'burn_block_height': value.burn_block_height, - 'delegate_to': value.delegate_to, - 'pox_addr': value.pox_addr, - 'signer_key': value.signer_key, - }; -} - diff --git a/client/src/generated/models/RosettaOptionsRequest.ts b/client/src/generated/models/RosettaOptionsRequest.ts deleted file mode 100644 index 4f2041994..000000000 --- a/client/src/generated/models/RosettaOptionsRequest.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, -} from './'; - -/** - * This endpoint returns the version information and allowed network-specific types for a NetworkIdentifier. Any NetworkIdentifier returned by /network/list should be accessible here. Because options are retrievable in the context of a NetworkIdentifier, it is possible to define unique options for each network. - * @export - * @interface RosettaOptionsRequest - */ -export interface RosettaOptionsRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaOptionsRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {object} - * @memberof RosettaOptionsRequest - */ - metadata?: object; -} - -export function RosettaOptionsRequestFromJSON(json: any): RosettaOptionsRequest { - return RosettaOptionsRequestFromJSONTyped(json, false); -} - -export function RosettaOptionsRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaOptionsRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaOptionsRequestToJSON(value?: RosettaOptionsRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaParentBlockIdentifier.ts b/client/src/generated/models/RosettaParentBlockIdentifier.ts deleted file mode 100644 index e2eb22b61..000000000 --- a/client/src/generated/models/RosettaParentBlockIdentifier.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The block_identifier uniquely identifies a block in a particular network. - * @export - * @interface RosettaParentBlockIdentifier - */ -export interface RosettaParentBlockIdentifier { - /** - * This is also known as the block height. - * @type {number} - * @memberof RosettaParentBlockIdentifier - */ - index: number; - /** - * Block hash - * @type {string} - * @memberof RosettaParentBlockIdentifier - */ - hash: string; -} - -export function RosettaParentBlockIdentifierFromJSON(json: any): RosettaParentBlockIdentifier { - return RosettaParentBlockIdentifierFromJSONTyped(json, false); -} - -export function RosettaParentBlockIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaParentBlockIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'index': json['index'], - 'hash': json['hash'], - }; -} - -export function RosettaParentBlockIdentifierToJSON(value?: RosettaParentBlockIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'index': value.index, - 'hash': value.hash, - }; -} - diff --git a/client/src/generated/models/RosettaPeers.ts b/client/src/generated/models/RosettaPeers.ts deleted file mode 100644 index ab6d65c22..000000000 --- a/client/src/generated/models/RosettaPeers.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * A Peer is a representation of a node's peer. - * @export - * @interface RosettaPeers - */ -export interface RosettaPeers { - /** - * peer id - * @type {string} - * @memberof RosettaPeers - */ - peer_id: string; - /** - * meta data - * @type {object} - * @memberof RosettaPeers - */ - metadata?: object; -} - -export function RosettaPeersFromJSON(json: any): RosettaPeers { - return RosettaPeersFromJSONTyped(json, false); -} - -export function RosettaPeersFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaPeers { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'peer_id': json['peer_id'], - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaPeersToJSON(value?: RosettaPeers | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'peer_id': value.peer_id, - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaPublicKey.ts b/client/src/generated/models/RosettaPublicKey.ts deleted file mode 100644 index e501860e1..000000000 --- a/client/src/generated/models/RosettaPublicKey.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * PublicKey contains a public key byte array for a particular CurveType encoded in hex. Note that there is no PrivateKey struct as this is NEVER the concern of an implementation. - * @export - * @interface RosettaPublicKey - */ -export interface RosettaPublicKey { - /** - * Hex-encoded public key bytes in the format specified by the CurveType. - * @type {string} - * @memberof RosettaPublicKey - */ - hex_bytes: string; - /** - * CurveType is the type of cryptographic curve associated with a PublicKey. - * @type {string} - * @memberof RosettaPublicKey - */ - curve_type: RosettaPublicKeyCurveTypeEnum; -} - -/** -* @export -* @enum {string} -*/ -export enum RosettaPublicKeyCurveTypeEnum { - secp256k1 = 'secp256k1', - edwards25519 = 'edwards25519' -} - -export function RosettaPublicKeyFromJSON(json: any): RosettaPublicKey { - return RosettaPublicKeyFromJSONTyped(json, false); -} - -export function RosettaPublicKeyFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaPublicKey { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'hex_bytes': json['hex_bytes'], - 'curve_type': json['curve_type'], - }; -} - -export function RosettaPublicKeyToJSON(value?: RosettaPublicKey | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'hex_bytes': value.hex_bytes, - 'curve_type': value.curve_type, - }; -} - diff --git a/client/src/generated/models/RosettaRelatedOperation.ts b/client/src/generated/models/RosettaRelatedOperation.ts deleted file mode 100644 index 7177c893d..000000000 --- a/client/src/generated/models/RosettaRelatedOperation.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * Restrict referenced related_operations to identifier indexes < the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree. - * @export - * @interface RosettaRelatedOperation - */ -export interface RosettaRelatedOperation { - /** - * Describes the index of related operation. - * @type {number} - * @memberof RosettaRelatedOperation - */ - index: number; - /** - * Some blockchains specify an operation index that is essential for client use. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains). - * @type {number} - * @memberof RosettaRelatedOperation - */ - network_index?: number; -} - -export function RosettaRelatedOperationFromJSON(json: any): RosettaRelatedOperation { - return RosettaRelatedOperationFromJSONTyped(json, false); -} - -export function RosettaRelatedOperationFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaRelatedOperation { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'index': json['index'], - 'network_index': !exists(json, 'network_index') ? undefined : json['network_index'], - }; -} - -export function RosettaRelatedOperationToJSON(value?: RosettaRelatedOperation | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'index': value.index, - 'network_index': value.network_index, - }; -} - diff --git a/client/src/generated/models/RosettaSignature.ts b/client/src/generated/models/RosettaSignature.ts deleted file mode 100644 index d2997957d..000000000 --- a/client/src/generated/models/RosettaSignature.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaPublicKey, - RosettaPublicKeyFromJSON, - RosettaPublicKeyFromJSONTyped, - RosettaPublicKeyToJSON, - SigningPayload, - SigningPayloadFromJSON, - SigningPayloadFromJSONTyped, - SigningPayloadToJSON, -} from './'; - -/** - * Signature contains the payload that was signed, the public keys of the keypairs used to produce the signature, the signature (encoded in hex), and the SignatureType. PublicKey is often times not known during construction of the signing payloads but may be needed to combine signatures properly. - * @export - * @interface RosettaSignature - */ -export interface RosettaSignature { - /** - * - * @type {SigningPayload} - * @memberof RosettaSignature - */ - signing_payload: SigningPayload; - /** - * - * @type {RosettaPublicKey} - * @memberof RosettaSignature - */ - public_key: RosettaPublicKey; - /** - * SignatureType is the type of a cryptographic signature. - * @type {string} - * @memberof RosettaSignature - */ - signature_type: RosettaSignatureSignatureTypeEnum; - /** - * - * @type {string} - * @memberof RosettaSignature - */ - hex_bytes: string; -} - -/** -* @export -* @enum {string} -*/ -export enum RosettaSignatureSignatureTypeEnum { - ecdsa = 'ecdsa', - ecdsa_recovery = 'ecdsa_recovery', - ed25519 = 'ed25519', - schnorr_1 = 'schnorr_1', - schnorr_poseidon = 'schnorr_poseidon' -} - -export function RosettaSignatureFromJSON(json: any): RosettaSignature { - return RosettaSignatureFromJSONTyped(json, false); -} - -export function RosettaSignatureFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaSignature { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'signing_payload': SigningPayloadFromJSON(json['signing_payload']), - 'public_key': RosettaPublicKeyFromJSON(json['public_key']), - 'signature_type': json['signature_type'], - 'hex_bytes': json['hex_bytes'], - }; -} - -export function RosettaSignatureToJSON(value?: RosettaSignature | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'signing_payload': SigningPayloadToJSON(value.signing_payload), - 'public_key': RosettaPublicKeyToJSON(value.public_key), - 'signature_type': value.signature_type, - 'hex_bytes': value.hex_bytes, - }; -} - diff --git a/client/src/generated/models/RosettaStatusRequest.ts b/client/src/generated/models/RosettaStatusRequest.ts deleted file mode 100644 index 91ea2c1de..000000000 --- a/client/src/generated/models/RosettaStatusRequest.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - NetworkIdentifier, - NetworkIdentifierFromJSON, - NetworkIdentifierFromJSONTyped, - NetworkIdentifierToJSON, -} from './'; - -/** - * This endpoint returns the current status of the network requested. Any NetworkIdentifier returned by /network/list should be accessible here. - * @export - * @interface RosettaStatusRequest - */ -export interface RosettaStatusRequest { - /** - * - * @type {NetworkIdentifier} - * @memberof RosettaStatusRequest - */ - network_identifier: NetworkIdentifier; - /** - * - * @type {object} - * @memberof RosettaStatusRequest - */ - metadata?: object; -} - -export function RosettaStatusRequestFromJSON(json: any): RosettaStatusRequest { - return RosettaStatusRequestFromJSONTyped(json, false); -} - -export function RosettaStatusRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaStatusRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'network_identifier': NetworkIdentifierFromJSON(json['network_identifier']), - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaStatusRequestToJSON(value?: RosettaStatusRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'network_identifier': NetworkIdentifierToJSON(value.network_identifier), - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaSubAccount.ts b/client/src/generated/models/RosettaSubAccount.ts deleted file mode 100644 index 0f21e3ff1..000000000 --- a/client/src/generated/models/RosettaSubAccount.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * An account may have state specific to a contract address (ERC-20 token) and/or a stake (delegated balance). The sub_account_identifier should specify which state (if applicable) an account instantiation refers to. - * @export - * @interface RosettaSubAccount - */ -export interface RosettaSubAccount { - /** - * The address may be a cryptographic public key (or some encoding of it) or a provided username. - * @type {string} - * @memberof RosettaSubAccount - */ - address: string; - /** - * If the SubAccount address is not sufficient to uniquely specify a SubAccount, any other identifying information can be stored here. It is important to note that two SubAccounts with identical addresses but differing metadata will not be considered equal by clients. - * @type {object} - * @memberof RosettaSubAccount - */ - metadata?: object; -} - -export function RosettaSubAccountFromJSON(json: any): RosettaSubAccount { - return RosettaSubAccountFromJSONTyped(json, false); -} - -export function RosettaSubAccountFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaSubAccount { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'address': json['address'], - 'metadata': !exists(json, 'metadata') ? undefined : json['metadata'], - }; -} - -export function RosettaSubAccountToJSON(value?: RosettaSubAccount | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'address': value.address, - 'metadata': value.metadata, - }; -} - diff --git a/client/src/generated/models/RosettaSyncStatus.ts b/client/src/generated/models/RosettaSyncStatus.ts deleted file mode 100644 index 01c769ce8..000000000 --- a/client/src/generated/models/RosettaSyncStatus.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * SyncStatus is used to provide additional context about an implementation's sync status. It is often used to indicate that an implementation is healthy when it cannot be queried until some sync phase occurs. If an implementation is immediately queryable, this model is often not populated. - * @export - * @interface RosettaSyncStatus - */ -export interface RosettaSyncStatus { - /** - * CurrentIndex is the index of the last synced block in the current stage. - * @type {number} - * @memberof RosettaSyncStatus - */ - current_index: number; - /** - * TargetIndex is the index of the block that the implementation is attempting to sync to in the current stage. - * @type {number} - * @memberof RosettaSyncStatus - */ - target_index?: number; - /** - * Stage is the phase of the sync process. - * @type {string} - * @memberof RosettaSyncStatus - */ - stage?: string; - /** - * Synced indicates if an implementation has synced up to the most recent block. - * @type {boolean} - * @memberof RosettaSyncStatus - */ - synced?: boolean; -} - -export function RosettaSyncStatusFromJSON(json: any): RosettaSyncStatus { - return RosettaSyncStatusFromJSONTyped(json, false); -} - -export function RosettaSyncStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaSyncStatus { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'current_index': json['current_index'], - 'target_index': !exists(json, 'target_index') ? undefined : json['target_index'], - 'stage': !exists(json, 'stage') ? undefined : json['stage'], - 'synced': !exists(json, 'synced') ? undefined : json['synced'], - }; -} - -export function RosettaSyncStatusToJSON(value?: RosettaSyncStatus | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'current_index': value.current_index, - 'target_index': value.target_index, - 'stage': value.stage, - 'synced': value.synced, - }; -} - diff --git a/client/src/generated/models/RosettaTransaction.ts b/client/src/generated/models/RosettaTransaction.ts deleted file mode 100644 index cc94bf1d4..000000000 --- a/client/src/generated/models/RosettaTransaction.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaBlockMetadata, - RosettaBlockMetadataFromJSON, - RosettaBlockMetadataFromJSONTyped, - RosettaBlockMetadataToJSON, - RosettaOperation, - RosettaOperationFromJSON, - RosettaOperationFromJSONTyped, - RosettaOperationToJSON, - TransactionIdentifier, - TransactionIdentifierFromJSON, - TransactionIdentifierFromJSONTyped, - TransactionIdentifierToJSON, -} from './'; - -/** - * Transactions contain an array of Operations that are attributable to the same TransactionIdentifier. - * @export - * @interface RosettaTransaction - */ -export interface RosettaTransaction { - /** - * - * @type {TransactionIdentifier} - * @memberof RosettaTransaction - */ - transaction_identifier: TransactionIdentifier; - /** - * List of operations - * @type {Array} - * @memberof RosettaTransaction - */ - operations: Array; - /** - * - * @type {RosettaBlockMetadata} - * @memberof RosettaTransaction - */ - metadata?: RosettaBlockMetadata; -} - -export function RosettaTransactionFromJSON(json: any): RosettaTransaction { - return RosettaTransactionFromJSONTyped(json, false); -} - -export function RosettaTransactionFromJSONTyped(json: any, ignoreDiscriminator: boolean): RosettaTransaction { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transaction_identifier': TransactionIdentifierFromJSON(json['transaction_identifier']), - 'operations': ((json['operations'] as Array).map(RosettaOperationFromJSON)), - 'metadata': !exists(json, 'metadata') ? undefined : RosettaBlockMetadataFromJSON(json['metadata']), - }; -} - -export function RosettaTransactionToJSON(value?: RosettaTransaction | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transaction_identifier': TransactionIdentifierToJSON(value.transaction_identifier), - 'operations': ((value.operations as Array).map(RosettaOperationToJSON)), - 'metadata': RosettaBlockMetadataToJSON(value.metadata), - }; -} - diff --git a/client/src/generated/models/RunFaucetResponse.ts b/client/src/generated/models/RunFaucetResponse.ts deleted file mode 100644 index 96b1a7512..000000000 --- a/client/src/generated/models/RunFaucetResponse.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * POST request that initiates a transfer of tokens to a specified testnet address - * @export - * @interface RunFaucetResponse - */ -export interface RunFaucetResponse { - /** - * Indicates if the faucet call was successful - * @type {boolean} - * @memberof RunFaucetResponse - */ - success: boolean; - /** - * The transaction ID for the faucet call - * @type {string} - * @memberof RunFaucetResponse - */ - txId?: string; - /** - * Raw transaction in hex string representation - * @type {string} - * @memberof RunFaucetResponse - */ - txRaw?: string; -} - -export function RunFaucetResponseFromJSON(json: any): RunFaucetResponse { - return RunFaucetResponseFromJSONTyped(json, false); -} - -export function RunFaucetResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RunFaucetResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'success': json['success'], - 'txId': !exists(json, 'txId') ? undefined : json['txId'], - 'txRaw': !exists(json, 'txRaw') ? undefined : json['txRaw'], - }; -} - -export function RunFaucetResponseToJSON(value?: RunFaucetResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'success': value.success, - 'txId': value.txId, - 'txRaw': value.txRaw, - }; -} - diff --git a/client/src/generated/models/ServerStatusResponse.ts b/client/src/generated/models/ServerStatusResponse.ts deleted file mode 100644 index 23fd80740..000000000 --- a/client/src/generated/models/ServerStatusResponse.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - ChainTip, - ChainTipFromJSON, - ChainTipFromJSONTyped, - ChainTipToJSON, -} from './'; - -/** - * GET blockchain API status - * @export - * @interface ServerStatusResponse - */ -export interface ServerStatusResponse { - /** - * the server version that is currently running - * @type {string} - * @memberof ServerStatusResponse - */ - server_version?: string; - /** - * the current server status - * @type {string} - * @memberof ServerStatusResponse - */ - status: string; - /** - * - * @type {number} - * @memberof ServerStatusResponse - */ - pox_v1_unlock_height?: number | null; - /** - * - * @type {number} - * @memberof ServerStatusResponse - */ - pox_v2_unlock_height?: number | null; - /** - * - * @type {ChainTip} - * @memberof ServerStatusResponse - */ - chain_tip?: ChainTip; -} - -export function ServerStatusResponseFromJSON(json: any): ServerStatusResponse { - return ServerStatusResponseFromJSONTyped(json, false); -} - -export function ServerStatusResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServerStatusResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'server_version': !exists(json, 'server_version') ? undefined : json['server_version'], - 'status': json['status'], - 'pox_v1_unlock_height': !exists(json, 'pox_v1_unlock_height') ? undefined : json['pox_v1_unlock_height'], - 'pox_v2_unlock_height': !exists(json, 'pox_v2_unlock_height') ? undefined : json['pox_v2_unlock_height'], - 'chain_tip': !exists(json, 'chain_tip') ? undefined : ChainTipFromJSON(json['chain_tip']), - }; -} - -export function ServerStatusResponseToJSON(value?: ServerStatusResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'server_version': value.server_version, - 'status': value.status, - 'pox_v1_unlock_height': value.pox_v1_unlock_height, - 'pox_v2_unlock_height': value.pox_v2_unlock_height, - 'chain_tip': ChainTipToJSON(value.chain_tip), - }; -} - diff --git a/client/src/generated/models/SigningPayload.ts b/client/src/generated/models/SigningPayload.ts deleted file mode 100644 index 2d455c721..000000000 --- a/client/src/generated/models/SigningPayload.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - RosettaAccount, - RosettaAccountFromJSON, - RosettaAccountFromJSONTyped, - RosettaAccountToJSON, -} from './'; - -/** - * SigningPayload is signed by the client with the keypair associated with an address using the specified SignatureType. SignatureType can be optionally populated if there is a restriction on the signature scheme that can be used to sign the payload. - * @export - * @interface SigningPayload - */ -export interface SigningPayload { - /** - * [DEPRECATED by account_identifier in v1.4.4] The network-specific address of the account that should sign the payload. - * @type {string} - * @memberof SigningPayload - */ - address?: string; - /** - * - * @type {RosettaAccount} - * @memberof SigningPayload - */ - account_identifier?: RosettaAccount; - /** - * - * @type {string} - * @memberof SigningPayload - */ - hex_bytes: string; - /** - * SignatureType is the type of a cryptographic signature. - * @type {string} - * @memberof SigningPayload - */ - signature_type?: SigningPayloadSignatureTypeEnum; -} - -/** -* @export -* @enum {string} -*/ -export enum SigningPayloadSignatureTypeEnum { - ecdsa = 'ecdsa', - ecdsa_recovery = 'ecdsa_recovery', - ed25519 = 'ed25519', - schnorr_1 = 'schnorr_1', - schnorr_poseidon = 'schnorr_poseidon' -} - -export function SigningPayloadFromJSON(json: any): SigningPayload { - return SigningPayloadFromJSONTyped(json, false); -} - -export function SigningPayloadFromJSONTyped(json: any, ignoreDiscriminator: boolean): SigningPayload { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'address': !exists(json, 'address') ? undefined : json['address'], - 'account_identifier': !exists(json, 'account_identifier') ? undefined : RosettaAccountFromJSON(json['account_identifier']), - 'hex_bytes': json['hex_bytes'], - 'signature_type': !exists(json, 'signature_type') ? undefined : json['signature_type'], - }; -} - -export function SigningPayloadToJSON(value?: SigningPayload | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'address': value.address, - 'account_identifier': RosettaAccountToJSON(value.account_identifier), - 'hex_bytes': value.hex_bytes, - 'signature_type': value.signature_type, - }; -} - diff --git a/client/src/generated/models/SmartContract.ts b/client/src/generated/models/SmartContract.ts deleted file mode 100644 index 434386b65..000000000 --- a/client/src/generated/models/SmartContract.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * A Smart Contract Detail - * @export - * @interface SmartContract - */ -export interface SmartContract { - /** - * - * @type {string} - * @memberof SmartContract - */ - tx_id: string; - /** - * - * @type {boolean} - * @memberof SmartContract - */ - canonical: boolean; - /** - * - * @type {string} - * @memberof SmartContract - */ - contract_id: string; - /** - * - * @type {number} - * @memberof SmartContract - */ - block_height: number; - /** - * - * @type {string} - * @memberof SmartContract - */ - source_code: string; - /** - * - * @type {string} - * @memberof SmartContract - */ - abi: string; -} - -export function SmartContractFromJSON(json: any): SmartContract { - return SmartContractFromJSONTyped(json, false); -} - -export function SmartContractFromJSONTyped(json: any, ignoreDiscriminator: boolean): SmartContract { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'tx_id': json['tx_id'], - 'canonical': json['canonical'], - 'contract_id': json['contract_id'], - 'block_height': json['block_height'], - 'source_code': json['source_code'], - 'abi': json['abi'], - }; -} - -export function SmartContractToJSON(value?: SmartContract | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'tx_id': value.tx_id, - 'canonical': value.canonical, - 'contract_id': value.contract_id, - 'block_height': value.block_height, - 'source_code': value.source_code, - 'abi': value.abi, - }; -} - diff --git a/client/src/generated/models/StxBalance.ts b/client/src/generated/models/StxBalance.ts deleted file mode 100644 index 1bfdc7135..000000000 --- a/client/src/generated/models/StxBalance.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface StxBalance - */ -export interface StxBalance { - /** - * - * @type {string} - * @memberof StxBalance - */ - balance: string; - /** - * - * @type {string} - * @memberof StxBalance - */ - total_sent: string; - /** - * - * @type {string} - * @memberof StxBalance - */ - total_received: string; - /** - * - * @type {string} - * @memberof StxBalance - */ - total_fees_sent: string; - /** - * - * @type {string} - * @memberof StxBalance - */ - total_miner_rewards_received: string; - /** - * The transaction where the lock event occurred. Empty if no tokens are locked. - * @type {string} - * @memberof StxBalance - */ - lock_tx_id: string; - /** - * The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked. - * @type {string} - * @memberof StxBalance - */ - locked: string; - /** - * The STX chain block height of when the lock event occurred. Zero if no tokens are locked. - * @type {number} - * @memberof StxBalance - */ - lock_height: number; - /** - * The burnchain block height of when the lock event occurred. Zero if no tokens are locked. - * @type {number} - * @memberof StxBalance - */ - burnchain_lock_height: number; - /** - * The burnchain block height of when the tokens unlock. Zero if no tokens are locked. - * @type {number} - * @memberof StxBalance - */ - burnchain_unlock_height: number; -} - -export function StxBalanceFromJSON(json: any): StxBalance { - return StxBalanceFromJSONTyped(json, false); -} - -export function StxBalanceFromJSONTyped(json: any, ignoreDiscriminator: boolean): StxBalance { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'balance': json['balance'], - 'total_sent': json['total_sent'], - 'total_received': json['total_received'], - 'total_fees_sent': json['total_fees_sent'], - 'total_miner_rewards_received': json['total_miner_rewards_received'], - 'lock_tx_id': json['lock_tx_id'], - 'locked': json['locked'], - 'lock_height': json['lock_height'], - 'burnchain_lock_height': json['burnchain_lock_height'], - 'burnchain_unlock_height': json['burnchain_unlock_height'], - }; -} - -export function StxBalanceToJSON(value?: StxBalance | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'balance': value.balance, - 'total_sent': value.total_sent, - 'total_received': value.total_received, - 'total_fees_sent': value.total_fees_sent, - 'total_miner_rewards_received': value.total_miner_rewards_received, - 'lock_tx_id': value.lock_tx_id, - 'locked': value.locked, - 'lock_height': value.lock_height, - 'burnchain_lock_height': value.burnchain_lock_height, - 'burnchain_unlock_height': value.burnchain_unlock_height, - }; -} - diff --git a/client/src/generated/models/TargetBlockTime.ts b/client/src/generated/models/TargetBlockTime.ts deleted file mode 100644 index d232ca9ee..000000000 --- a/client/src/generated/models/TargetBlockTime.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface TargetBlockTime - */ -export interface TargetBlockTime { - /** - * - * @type {number} - * @memberof TargetBlockTime - */ - target_block_time: number; -} - -export function TargetBlockTimeFromJSON(json: any): TargetBlockTime { - return TargetBlockTimeFromJSONTyped(json, false); -} - -export function TargetBlockTimeFromJSONTyped(json: any, ignoreDiscriminator: boolean): TargetBlockTime { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'target_block_time': json['target_block_time'], - }; -} - -export function TargetBlockTimeToJSON(value?: TargetBlockTime | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'target_block_time': value.target_block_time, - }; -} - diff --git a/client/src/generated/models/TransactionEventsResponse.ts b/client/src/generated/models/TransactionEventsResponse.ts deleted file mode 100644 index b0ef8b76e..000000000 --- a/client/src/generated/models/TransactionEventsResponse.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET event for the given transaction - * @export - * @interface TransactionEventsResponse - */ -export interface TransactionEventsResponse { - /** - * - * @type {number} - * @memberof TransactionEventsResponse - */ - limit: number; - /** - * - * @type {number} - * @memberof TransactionEventsResponse - */ - offset: number; - /** - * - * @type {Array} - * @memberof TransactionEventsResponse - */ - results: Array; -} - -export function TransactionEventsResponseFromJSON(json: any): TransactionEventsResponse { - return TransactionEventsResponseFromJSONTyped(json, false); -} - -export function TransactionEventsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionEventsResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'results': json['results'], - }; -} - -export function TransactionEventsResponseToJSON(value?: TransactionEventsResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/TransactionFeeEstimateRequest.ts b/client/src/generated/models/TransactionFeeEstimateRequest.ts deleted file mode 100644 index e34df71d2..000000000 --- a/client/src/generated/models/TransactionFeeEstimateRequest.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * POST request for estimated fee - * @export - * @interface TransactionFeeEstimateRequest - */ -export interface TransactionFeeEstimateRequest { - /** - * - * @type {string} - * @memberof TransactionFeeEstimateRequest - */ - transaction_payload: string; - /** - * - * @type {number} - * @memberof TransactionFeeEstimateRequest - */ - estimated_len?: number; -} - -export function TransactionFeeEstimateRequestFromJSON(json: any): TransactionFeeEstimateRequest { - return TransactionFeeEstimateRequestFromJSONTyped(json, false); -} - -export function TransactionFeeEstimateRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionFeeEstimateRequest { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'transaction_payload': json['transaction_payload'], - 'estimated_len': !exists(json, 'estimated_len') ? undefined : json['estimated_len'], - }; -} - -export function TransactionFeeEstimateRequestToJSON(value?: TransactionFeeEstimateRequest | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'transaction_payload': value.transaction_payload, - 'estimated_len': value.estimated_len, - }; -} - diff --git a/client/src/generated/models/TransactionFeeEstimateResponse.ts b/client/src/generated/models/TransactionFeeEstimateResponse.ts deleted file mode 100644 index 39bd7fcbd..000000000 --- a/client/src/generated/models/TransactionFeeEstimateResponse.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -import { - TransactionFeeEstimateResponseEstimatedCost, - TransactionFeeEstimateResponseEstimatedCostFromJSON, - TransactionFeeEstimateResponseEstimatedCostFromJSONTyped, - TransactionFeeEstimateResponseEstimatedCostToJSON, - TransactionFeeEstimateResponseEstimations, - TransactionFeeEstimateResponseEstimationsFromJSON, - TransactionFeeEstimateResponseEstimationsFromJSONTyped, - TransactionFeeEstimateResponseEstimationsToJSON, -} from './'; - -/** - * POST response for estimated fee - * @export - * @interface TransactionFeeEstimateResponse - */ -export interface TransactionFeeEstimateResponse { - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponse - */ - estimated_cost_scalar: number; - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponse - */ - cost_scalar_change_by_byte?: number; - /** - * - * @type {TransactionFeeEstimateResponseEstimatedCost} - * @memberof TransactionFeeEstimateResponse - */ - estimated_cost: TransactionFeeEstimateResponseEstimatedCost; - /** - * - * @type {Array} - * @memberof TransactionFeeEstimateResponse - */ - estimations?: Array; -} - -export function TransactionFeeEstimateResponseFromJSON(json: any): TransactionFeeEstimateResponse { - return TransactionFeeEstimateResponseFromJSONTyped(json, false); -} - -export function TransactionFeeEstimateResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionFeeEstimateResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'estimated_cost_scalar': json['estimated_cost_scalar'], - 'cost_scalar_change_by_byte': !exists(json, 'cost_scalar_change_by_byte') ? undefined : json['cost_scalar_change_by_byte'], - 'estimated_cost': TransactionFeeEstimateResponseEstimatedCostFromJSON(json['estimated_cost']), - 'estimations': !exists(json, 'estimations') ? undefined : ((json['estimations'] as Array).map(TransactionFeeEstimateResponseEstimationsFromJSON)), - }; -} - -export function TransactionFeeEstimateResponseToJSON(value?: TransactionFeeEstimateResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'estimated_cost_scalar': value.estimated_cost_scalar, - 'cost_scalar_change_by_byte': value.cost_scalar_change_by_byte, - 'estimated_cost': TransactionFeeEstimateResponseEstimatedCostToJSON(value.estimated_cost), - 'estimations': value.estimations === undefined ? undefined : ((value.estimations as Array).map(TransactionFeeEstimateResponseEstimationsToJSON)), - }; -} - diff --git a/client/src/generated/models/TransactionFeeEstimateResponseEstimatedCost.ts b/client/src/generated/models/TransactionFeeEstimateResponseEstimatedCost.ts deleted file mode 100644 index dc4160a3a..000000000 --- a/client/src/generated/models/TransactionFeeEstimateResponseEstimatedCost.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface TransactionFeeEstimateResponseEstimatedCost - */ -export interface TransactionFeeEstimateResponseEstimatedCost { - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponseEstimatedCost - */ - read_count: number; - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponseEstimatedCost - */ - read_length: number; - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponseEstimatedCost - */ - runtime: number; - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponseEstimatedCost - */ - write_count: number; - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponseEstimatedCost - */ - write_length: number; -} - -export function TransactionFeeEstimateResponseEstimatedCostFromJSON(json: any): TransactionFeeEstimateResponseEstimatedCost { - return TransactionFeeEstimateResponseEstimatedCostFromJSONTyped(json, false); -} - -export function TransactionFeeEstimateResponseEstimatedCostFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionFeeEstimateResponseEstimatedCost { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'read_count': json['read_count'], - 'read_length': json['read_length'], - 'runtime': json['runtime'], - 'write_count': json['write_count'], - 'write_length': json['write_length'], - }; -} - -export function TransactionFeeEstimateResponseEstimatedCostToJSON(value?: TransactionFeeEstimateResponseEstimatedCost | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'read_count': value.read_count, - 'read_length': value.read_length, - 'runtime': value.runtime, - 'write_count': value.write_count, - 'write_length': value.write_length, - }; -} - diff --git a/client/src/generated/models/TransactionFeeEstimateResponseEstimations.ts b/client/src/generated/models/TransactionFeeEstimateResponseEstimations.ts deleted file mode 100644 index ccb1484e8..000000000 --- a/client/src/generated/models/TransactionFeeEstimateResponseEstimations.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * - * @export - * @interface TransactionFeeEstimateResponseEstimations - */ -export interface TransactionFeeEstimateResponseEstimations { - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponseEstimations - */ - fee_rate?: number; - /** - * - * @type {number} - * @memberof TransactionFeeEstimateResponseEstimations - */ - fee?: number; -} - -export function TransactionFeeEstimateResponseEstimationsFromJSON(json: any): TransactionFeeEstimateResponseEstimations { - return TransactionFeeEstimateResponseEstimationsFromJSONTyped(json, false); -} - -export function TransactionFeeEstimateResponseEstimationsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionFeeEstimateResponseEstimations { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'fee_rate': !exists(json, 'fee_rate') ? undefined : json['fee_rate'], - 'fee': !exists(json, 'fee') ? undefined : json['fee'], - }; -} - -export function TransactionFeeEstimateResponseEstimationsToJSON(value?: TransactionFeeEstimateResponseEstimations | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'fee_rate': value.fee_rate, - 'fee': value.fee, - }; -} - diff --git a/client/src/generated/models/TransactionIdentifier.ts b/client/src/generated/models/TransactionIdentifier.ts deleted file mode 100644 index 539bb6983..000000000 --- a/client/src/generated/models/TransactionIdentifier.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool. - * @export - * @interface TransactionIdentifier - */ -export interface TransactionIdentifier { - /** - * Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier. - * @type {string} - * @memberof TransactionIdentifier - */ - hash: string; -} - -export function TransactionIdentifierFromJSON(json: any): TransactionIdentifier { - return TransactionIdentifierFromJSONTyped(json, false); -} - -export function TransactionIdentifierFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionIdentifier { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'hash': json['hash'], - }; -} - -export function TransactionIdentifierToJSON(value?: TransactionIdentifier | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'hash': value.hash, - }; -} - diff --git a/client/src/generated/models/TransactionResults.ts b/client/src/generated/models/TransactionResults.ts deleted file mode 100644 index 6d9353ee1..000000000 --- a/client/src/generated/models/TransactionResults.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that returns transactions - * @export - * @interface TransactionResults - */ -export interface TransactionResults { - /** - * The number of transactions to return - * @type {number} - * @memberof TransactionResults - */ - limit: number; - /** - * The number to transactions to skip (starting at `0`) - * @type {number} - * @memberof TransactionResults - */ - offset: number; - /** - * The number of transactions available - * @type {number} - * @memberof TransactionResults - */ - total: number; - /** - * - * @type {Array} - * @memberof TransactionResults - */ - results: Array; -} - -export function TransactionResultsFromJSON(json: any): TransactionResults { - return TransactionResultsFromJSONTyped(json, false); -} - -export function TransactionResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): TransactionResults { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'limit': json['limit'], - 'offset': json['offset'], - 'total': json['total'], - 'results': json['results'], - }; -} - -export function TransactionResultsToJSON(value?: TransactionResults | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'limit': value.limit, - 'offset': value.offset, - 'total': value.total, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/UnanchoredTransactionListResponse.ts b/client/src/generated/models/UnanchoredTransactionListResponse.ts deleted file mode 100644 index ff248f61f..000000000 --- a/client/src/generated/models/UnanchoredTransactionListResponse.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from '../runtime'; -/** - * GET request that returns unanchored transactions - * @export - * @interface UnanchoredTransactionListResponse - */ -export interface UnanchoredTransactionListResponse { - /** - * The number of unanchored transactions available - * @type {number} - * @memberof UnanchoredTransactionListResponse - */ - total: number; - /** - * - * @type {Array} - * @memberof UnanchoredTransactionListResponse - */ - results: Array; -} - -export function UnanchoredTransactionListResponseFromJSON(json: any): UnanchoredTransactionListResponse { - return UnanchoredTransactionListResponseFromJSONTyped(json, false); -} - -export function UnanchoredTransactionListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): UnanchoredTransactionListResponse { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'total': json['total'], - 'results': json['results'], - }; -} - -export function UnanchoredTransactionListResponseToJSON(value?: UnanchoredTransactionListResponse | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'total': value.total, - 'results': value.results, - }; -} - diff --git a/client/src/generated/models/index.ts b/client/src/generated/models/index.ts deleted file mode 100644 index 8523717ae..000000000 --- a/client/src/generated/models/index.ts +++ /dev/null @@ -1,153 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -export * from './AccountDataResponse'; -export * from './AddressAssetsListResponse'; -export * from './AddressBalanceResponse'; -export * from './AddressNftListResponse'; -export * from './AddressNftListResponseValue'; -export * from './AddressNonces'; -export * from './AddressStxInboundListResponse'; -export * from './AddressTokenOfferingLocked'; -export * from './AddressTransactionWithTransfers'; -export * from './AddressTransactionWithTransfersFtTransfers'; -export * from './AddressTransactionWithTransfersNftTransfers'; -export * from './AddressTransactionWithTransfersStxTransfers'; -export * from './AddressTransactionWithTransfersValue'; -export * from './AddressTransactionsListResponse'; -export * from './AddressTransactionsWithTransfersListResponse'; -export * from './AddressUnlockSchedule'; -export * from './Block'; -export * from './BlockListResponse'; -export * from './BnsError'; -export * from './BnsGetAllNamespacesResponse'; -export * from './BnsGetNameInfoResponse'; -export * from './BnsGetNamePriceResponse'; -export * from './BnsGetNamespacePriceResponse'; -export * from './BnsNamesOwnByAddressResponse'; -export * from './BurnchainReward'; -export * from './BurnchainRewardListResponse'; -export * from './BurnchainRewardSlotHolder'; -export * from './BurnchainRewardSlotHolderListResponse'; -export * from './BurnchainRewardsTotal'; -export * from './ChainTip'; -export * from './ContractInterfaceResponse'; -export * from './ContractListResponse'; -export * from './ContractSourceResponse'; -export * from './CoreNodeInfoResponse'; -export * from './CoreNodePoxResponse'; -export * from './FeeRate'; -export * from './FeeRateRequest'; -export * from './FungibleTokenMetadata'; -export * from './FungibleTokensMetadataList'; -export * from './GetRawTransactionResult'; -export * from './GetStxSupplyLegacyFormatResponse'; -export * from './GetStxSupplyResponse'; -export * from './InboundStxTransfer'; -export * from './InlineObject'; -export * from './InlineResponse403'; -export * from './MapEntryResponse'; -export * from './MempoolFeePriorities'; -export * from './MempoolFeePrioritiesAll'; -export * from './MempoolTransactionListResponse'; -export * from './MempoolTransactionStatsResponse'; -export * from './MempoolTransactionStatsResponseTxAges'; -export * from './MempoolTransactionStatsResponseTxByteSizes'; -export * from './MempoolTransactionStatsResponseTxSimpleFeeAverages'; -export * from './MempoolTransactionStatsResponseTxSimpleFeeAveragesTokenTransfer'; -export * from './MempoolTransactionStatsResponseTxTypeCounts'; -export * from './Microblock'; -export * from './MicroblockListResponse'; -export * from './NetworkBlockTimeResponse'; -export * from './NetworkBlockTimesResponse'; -export * from './NetworkIdentifier'; -export * from './NftEvent'; -export * from './NonFungibleTokenHistoryEventList'; -export * from './NonFungibleTokenHoldingsList'; -export * from './NonFungibleTokenMetadata'; -export * from './NonFungibleTokenMintList'; -export * from './NonFungibleTokensMetadataList'; -export * from './OtherTransactionIdentifier'; -export * from './PoolDelegation'; -export * from './PoolDelegationsResponse'; -export * from './PostCoreNodeTransactionsError'; -export * from './ReadOnlyFunctionArgs'; -export * from './ReadOnlyFunctionSuccessResponse'; -export * from './RosettaAccount'; -export * from './RosettaAccountBalanceRequest'; -export * from './RosettaAccountBalanceResponse'; -export * from './RosettaAccountBalanceResponseCoinIdentifier'; -export * from './RosettaAccountBalanceResponseMetadata'; -export * from './RosettaAccountIdentifier'; -export * from './RosettaAmount'; -export * from './RosettaBlock'; -export * from './RosettaBlockMetadata'; -export * from './RosettaBlockMetadata1'; -export * from './RosettaBlockRequest'; -export * from './RosettaBlockResponse'; -export * from './RosettaBlockTransactionRequest'; -export * from './RosettaBlockTransactionResponse'; -export * from './RosettaCoin'; -export * from './RosettaCoinChange'; -export * from './RosettaConstructionCombineRequest'; -export * from './RosettaConstructionCombineResponse'; -export * from './RosettaConstructionDeriveRequest'; -export * from './RosettaConstructionDeriveResponse'; -export * from './RosettaConstructionHashRequest'; -export * from './RosettaConstructionHashResponse'; -export * from './RosettaConstructionMetadataRequest'; -export * from './RosettaConstructionMetadataResponse'; -export * from './RosettaConstructionMetadataResponseMetadata'; -export * from './RosettaConstructionParseRequest'; -export * from './RosettaConstructionParseResponse'; -export * from './RosettaConstructionPayloadResponse'; -export * from './RosettaConstructionPayloadsRequest'; -export * from './RosettaConstructionPreprocessRequest'; -export * from './RosettaConstructionPreprocessResponse'; -export * from './RosettaConstructionSubmitRequest'; -export * from './RosettaConstructionSubmitResponse'; -export * from './RosettaCurrency'; -export * from './RosettaError'; -export * from './RosettaErrorDetails'; -export * from './RosettaErrorNoDetails'; -export * from './RosettaGenesisBlockIdentifier'; -export * from './RosettaMaxFeeAmount'; -export * from './RosettaMempoolRequest'; -export * from './RosettaMempoolResponse'; -export * from './RosettaMempoolTransactionRequest'; -export * from './RosettaMempoolTransactionResponse'; -export * from './RosettaNetworkListResponse'; -export * from './RosettaNetworkListResponseSubNetworkIdentifier'; -export * from './RosettaNetworkListResponseSubNetworkIdentifierMetadata'; -export * from './RosettaNetworkOptionsResponse'; -export * from './RosettaNetworkOptionsResponseAllow'; -export * from './RosettaNetworkOptionsResponseVersion'; -export * from './RosettaNetworkStatusResponse'; -export * from './RosettaOldestBlockIdentifier'; -export * from './RosettaOperation'; -export * from './RosettaOperationIdentifier'; -export * from './RosettaOperationStatus'; -export * from './RosettaOptions'; -export * from './RosettaOptionsRequest'; -export * from './RosettaParentBlockIdentifier'; -export * from './RosettaPeers'; -export * from './RosettaPublicKey'; -export * from './RosettaRelatedOperation'; -export * from './RosettaSignature'; -export * from './RosettaStatusRequest'; -export * from './RosettaSubAccount'; -export * from './RosettaSyncStatus'; -export * from './RosettaTransaction'; -export * from './RunFaucetResponse'; -export * from './ServerStatusResponse'; -export * from './SigningPayload'; -export * from './SmartContract'; -export * from './StxBalance'; -export * from './TargetBlockTime'; -export * from './TransactionEventsResponse'; -export * from './TransactionFeeEstimateRequest'; -export * from './TransactionFeeEstimateResponse'; -export * from './TransactionFeeEstimateResponseEstimatedCost'; -export * from './TransactionFeeEstimateResponseEstimations'; -export * from './TransactionIdentifier'; -export * from './TransactionResults'; -export * from './UnanchoredTransactionListResponse'; diff --git a/client/src/generated/runtime.ts b/client/src/generated/runtime.ts deleted file mode 100644 index 7ff36f09e..000000000 --- a/client/src/generated/runtime.ts +++ /dev/null @@ -1,320 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Stacks Blockchain API - * Welcome to the API reference overview for the Stacks Blockchain API. Download Postman collection - * - * The version of the OpenAPI document: STACKS_API_VERSION - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export const BASE_PATH = "https://api.mainnet.hiro.so".replace(/\/+$/, ""); - -const isBlob = (value: any) => typeof Blob !== 'undefined' && value instanceof Blob; - -/** - * This is the base class for all generated API classes. - */ -export class BaseAPI { - - private middleware: Middleware[]; - - constructor(protected configuration = new Configuration()) { - this.middleware = configuration.middleware; - } - - withMiddleware(this: T, ...middlewares: Middleware[]) { - const next = this.clone(); - next.middleware = next.middleware.concat(...middlewares); - return next; - } - - withPreMiddleware(this: T, ...preMiddlewares: Array) { - const middlewares = preMiddlewares.map((pre) => ({ pre })); - return this.withMiddleware(...middlewares); - } - - withPostMiddleware(this: T, ...postMiddlewares: Array) { - const middlewares = postMiddlewares.map((post) => ({ post })); - return this.withMiddleware(...middlewares); - } - - protected async request(context: RequestOpts, initOverrides?: RequestInit): Promise { - const { url, init } = this.createFetchParams(context, initOverrides); - const response = await this.fetchApi(url, init); - if (response.status >= 200 && response.status < 300) { - return response; - } - throw response; - } - - private createFetchParams(context: RequestOpts, initOverrides?: RequestInit) { - let url = this.configuration.basePath + context.path; - if (context.query !== undefined && Object.keys(context.query).length !== 0) { - // only add the querystring to the URL if there are query parameters. - // this is done to avoid urls ending with a "?" character which buggy webservers - // do not handle correctly sometimes. - url += '?' + this.configuration.queryParamsStringify(context.query); - } - const body = ((typeof FormData !== "undefined" && context.body instanceof FormData) || context.body instanceof URLSearchParams || isBlob(context.body)) - ? context.body - : JSON.stringify(context.body); - - const headers = Object.assign({}, this.configuration.headers, context.headers); - const init = { - method: context.method, - headers: headers, - body, - credentials: this.configuration.credentials, - ...initOverrides - }; - return { url, init }; - } - - private fetchApi = async (url: string, init: RequestInit) => { - let fetchParams = { url, init }; - for (const middleware of this.middleware) { - if (middleware.pre) { - fetchParams = await middleware.pre({ - fetch: this.fetchApi, - ...fetchParams, - }) || fetchParams; - } - } - let response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init); - for (const middleware of this.middleware) { - if (middleware.post) { - response = await middleware.post({ - fetch: this.fetchApi, - url: fetchParams.url, - init: fetchParams.init, - response: response.clone(), - }) || response; - } - } - return response; - } - - /** - * Create a shallow clone of `this` by constructing a new instance - * and then shallow cloning data members. - */ - private clone(this: T): T { - const constructor = this.constructor as any; - const next = new constructor(this.configuration); - next.middleware = this.middleware.slice(); - return next; - } -}; - -export class RequiredError extends Error { - name: "RequiredError" = "RequiredError"; - constructor(public field: string, msg?: string) { - super(msg); - } -} - -export const COLLECTION_FORMATS = { - csv: ",", - ssv: " ", - tsv: "\t", - pipes: "|", -}; - -export type FetchAPI = WindowOrWorkerGlobalScope['fetch']; - -export interface ConfigurationParameters { - basePath?: string; // override base path - fetchApi?: FetchAPI; // override for fetch implementation - middleware?: Middleware[]; // middleware to apply before/after fetch requests - queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings - username?: string; // parameter for basic security - password?: string; // parameter for basic security - apiKey?: string | ((name: string) => string); // parameter for apiKey security - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string | Promise); // parameter for oauth2 security - headers?: HTTPHeaders; //header params we want to use on every request - credentials?: RequestCredentials; //value for the credentials param we want to use on each request -} - -export class Configuration { - constructor(private configuration: ConfigurationParameters = {}) {} - - get basePath(): string { - return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH; - } - - get fetchApi(): FetchAPI | undefined { - return this.configuration.fetchApi; - } - - get middleware(): Middleware[] { - return this.configuration.middleware || []; - } - - get queryParamsStringify(): (params: HTTPQuery) => string { - return this.configuration.queryParamsStringify || querystring; - } - - get username(): string | undefined { - return this.configuration.username; - } - - get password(): string | undefined { - return this.configuration.password; - } - - get apiKey(): ((name: string) => string) | undefined { - const apiKey = this.configuration.apiKey; - if (apiKey) { - return typeof apiKey === 'function' ? apiKey : () => apiKey; - } - return undefined; - } - - get accessToken(): ((name?: string, scopes?: string[]) => string | Promise) | undefined { - const accessToken = this.configuration.accessToken; - if (accessToken) { - return typeof accessToken === 'function' ? accessToken : async () => accessToken; - } - return undefined; - } - - get headers(): HTTPHeaders | undefined { - return this.configuration.headers; - } - - get credentials(): RequestCredentials | undefined { - return this.configuration.credentials; - } -} - -export type Json = any; -export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD'; -export type HTTPHeaders = { [key: string]: string }; -export type HTTPQuery = { [key: string]: string | number | null | boolean | Array | HTTPQuery }; -export type HTTPBody = Json | FormData | URLSearchParams; -export type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original'; - -export interface FetchParams { - url: string; - init: RequestInit; -} - -export interface RequestOpts { - path: string; - method: HTTPMethod; - headers: HTTPHeaders; - query?: HTTPQuery; - body?: HTTPBody; -} - -export function exists(json: any, key: string) { - const value = json[key]; - return value !== null && value !== undefined; -} - -export function querystring(params: HTTPQuery, prefix: string = ''): string { - return Object.keys(params) - .map((key) => { - const fullKey = prefix + (prefix.length ? `[${key}]` : key); - const value = params[key]; - if (value instanceof Array) { - const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue))) - .join(`&${encodeURIComponent(fullKey)}=`); - return `${encodeURIComponent(fullKey)}=${multiValue}`; - } - if (value instanceof Date) { - return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`; - } - if (value instanceof Object) { - return querystring(value as HTTPQuery, fullKey); - } - return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`; - }) - .filter(part => part.length > 0) - .join('&'); -} - -export function mapValues(data: any, fn: (item: any) => any) { - return Object.keys(data).reduce( - (acc, key) => ({ ...acc, [key]: fn(data[key]) }), - {} - ); -} - -export function canConsumeForm(consumes: Consume[]): boolean { - for (const consume of consumes) { - if ('multipart/form-data' === consume.contentType) { - return true; - } - } - return false; -} - -export interface Consume { - contentType: string -} - -export interface RequestContext { - fetch: FetchAPI; - url: string; - init: RequestInit; -} - -export interface ResponseContext { - fetch: FetchAPI; - url: string; - init: RequestInit; - response: Response; -} - -export interface Middleware { - pre?(context: RequestContext): Promise; - post?(context: ResponseContext): Promise; -} - -export interface ApiResponse { - raw: Response; - value(): Promise; -} - -export interface ResponseTransformer { - (json: any): T; -} - -export class JSONApiResponse { - constructor(public raw: Response, private transformer: ResponseTransformer = (jsonValue: any) => jsonValue) {} - - async value(): Promise { - return this.transformer(await this.raw.json()); - } -} - -export class VoidApiResponse { - constructor(public raw: Response) {} - - async value(): Promise { - return undefined; - } -} - -export class BlobApiResponse { - constructor(public raw: Response) {} - - async value(): Promise { - return await this.raw.blob(); - }; -} - -export class TextApiResponse { - constructor(public raw: Response) {} - - async value(): Promise { - return await this.raw.text(); - }; -} diff --git a/client/src/generated/schema.d.ts b/client/src/generated/schema.d.ts new file mode 100644 index 000000000..dc2461b7b --- /dev/null +++ b/client/src/generated/schema.d.ts @@ -0,0 +1,30952 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/extended": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * API status + * @description Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information. + */ + get: operations["get_status"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get recent transactions + * @description Retrieves all recently mined transactions + */ + get: operations["get_transaction_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/multiple": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get list of details for transactions + * @description Retrieves a list of transactions for a given list of transaction IDs + */ + get: operations["get_tx_list_details"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/mempool": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get mempool transactions + * @description Retrieves all transactions that have been recently broadcast to the mempool. These are pending transactions awaiting confirmation. + * + * If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. + */ + get: operations["get_mempool_transaction_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/mempool/dropped": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get dropped mempool transactions + * @description Retrieves all recently-broadcast transactions that have been dropped from the mempool. + * + * Transactions are dropped from the mempool if: + * * they were stale and awaiting garbage collection or, + * * were expensive, or + * * were replaced with a new fee + */ + get: operations["get_dropped_mempool_transaction_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/mempool/stats": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get statistics for mempool transactions + * @description Queries for transactions counts, age (by block height), fees (simple average), and size. + * All results broken down by transaction type and percentiles (p25, p50, p75, p95). + */ + get: operations["get_mempool_transaction_stats"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/events": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Transaction Events + * @description Retrieves the list of events filtered by principal (STX address or Smart Contract ID), transaction id or event types. + * The list of event types is ('smart_contract_log', 'stx_lock', 'stx_asset', 'fungible_token_asset', 'non_fungible_token_asset'). + */ + get: operations["get_filtered_events"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/{tx_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get transaction + * @description Retrieves transaction details for a given transaction ID + */ + get: operations["get_transaction_by_id"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/{tx_id}/raw": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get raw transaction + * @description Retrieves a hex encoded serialized transaction for a given ID + */ + get: operations["get_raw_transaction_by_id"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/block/{block_hash}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Transactions by block hash + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get transactions by block](/api/get-transactions-by-block). + * + * Retrieves a list of all transactions within a block for a given block hash. + */ + get: operations["get_transactions_by_block_hash"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tx/block_height/{height}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Transactions by block height + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get transactions by block](/api/get-transactions-by-block). + * + * Retrieves all transactions within a block at a given height + */ + get: operations["get_transactions_by_block_height"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/stx_supply/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get total and unlocked STX supply + * @description Retrieves the total and unlocked STX supply. More information on Stacking can be found [here] (https://docs.stacks.co/understand-stacks/stacking). + * **Note:** This uses the estimated future total supply for the year 2050. + */ + get: operations["get_stx_supply"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/stx_supply/total/plain": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get total STX supply in plain text format + * @description Retrieves the total supply for STX tokens as plain text. + * **Note:** this uses the estimated future total supply for the year 2050. + */ + get: operations["get_stx_supply_total_supply_plain"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/stx_supply/circulating/plain": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get circulating STX supply in plain text format + * @description Retrieves the STX tokens currently in circulation that have been unlocked as plain text. + */ + get: operations["get_stx_supply_circulating_plain"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/stx_supply/legacy_format": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get total and unlocked STX supply (results formatted the same as the legacy 1.0 API) + * @description Retrieves total supply of STX tokens including those currently in circulation that have been unlocked. + * **Note:** this uses the estimated future total supply for the year 2050. + */ + get: operations["get_total_stx_supply_legacy_format"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/info/network_block_times": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get the network target block time + * @description Retrieves the target block times for mainnet and testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. + */ + get: operations["get_network_block_times"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/info/network_block_time/{network}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get a given network's target block time + * @description Retrieves the target block time for a given network. The network can be mainnet or testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. + */ + get: operations["get_network_block_time_by_network"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tokens/nft/holdings": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Non-Fungible Token holdings + * @description Retrieves the list of Non-Fungible Tokens owned by the given principal (STX address or Smart Contract ID). + * Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token. + * + * More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). + */ + get: operations["get_nft_holdings"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tokens/nft/history": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Non-Fungible Token history + * @description Retrieves all events relevant to a Non-Fungible Token. Useful to determine the ownership history of a particular asset. + * + * More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). + */ + get: operations["get_nft_history"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tokens/nft/mints": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Non-Fungible Token mints + * @description Retrieves all mint events for a Non-Fungible Token asset class. Useful to determine which NFTs of a particular collection have been claimed. + * + * More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). + */ + get: operations["get_nft_mints"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/tokens/ft/{token}/holders": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Fungible token holders + * @description Retrieves the list of Fungible Token holders for a given token ID. Specify `stx` for the `token` parameter to get the list of STX holders. + */ + get: operations["get_ft_holders"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/contract/by_trait": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get contracts by trait + * @description Retrieves a list of contracts based on the following traits listed in JSON format - functions, variables, maps, fungible tokens and non-fungible tokens + */ + get: operations["get_contracts_by_trait"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/contract/{contract_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get contract info + * @description Retrieves details of a contract with a given `contract_id` + */ + get: operations["get_contract_by_id"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/contract/{contract_id}/events": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get contract events + * @description Retrieves a list of events that have been triggered by a given `contract_id` + */ + get: operations["get_contract_events_by_id"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/fee_rate/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Fetch fee rate + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](/api/get-approximate-fees-for-a-given-transaction). + * + * Retrieves estimated fee rate. + */ + post: operations["fetch_fee_rate"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/microblock/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get recent microblocks + * @description Retrieves a list of microblocks. + * + * If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. + */ + get: operations["get_microblock_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/microblock/{hash}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get microblock + * @description Retrieves a specific microblock by `hash` + */ + get: operations["get_microblock_by_hash"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/microblock/unanchored/txs": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get the list of current transactions that belong to unanchored microblocks + * @description Retrieves transactions that have been streamed in microblocks but not yet accepted or rejected in an anchor block + */ + get: operations["get_unanchored_txs"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/block/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get recent blocks + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). + * + * Retrieves a list of recently mined blocks + * + * If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. + */ + get: operations["get_block_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/block/by_height/{height}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get block by height + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get block](/api/get-block). + * + * Retrieves block details of a specific block at a given block height + */ + get: operations["get_block_by_height"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/block/by_burn_block_height/{burn_block_height}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get block by burnchain height + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). + * + * Retrieves block details of a specific block for a given burn chain height + */ + get: operations["get_block_by_burn_block_height"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/block/{hash}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get block by hash + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get block](/api/get-block). + * + * Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block ('get_block_list' API) to get your block details. + */ + get: operations["get_block_by_hash"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/block/by_burn_block_hash/{burn_block_hash}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get block by burnchain block hash + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). + * + * Retrieves block details of a specific block for a given burnchain block hash + */ + get: operations["get_block_by_burn_block_hash"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/burnchain/reward_slot_holders": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get recent reward slot holders + * @description Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments. + */ + get: operations["get_burnchain_reward_slot_holders"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/burnchain/reward_slot_holders/{address}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get recent reward slot holder entries for the given address + * @description Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments for a given reward slot holder recipient address. + */ + get: operations["get_burnchain_reward_slot_holders_by_address"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/burnchain/rewards": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get recent burnchain reward recipients + * @description Retrieves a list of recent burnchain (e.g. Bitcoin) reward recipients with the associated amounts and block info + */ + get: operations["get_burnchain_reward_list"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/burnchain/rewards/{address}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get recent burnchain reward for the given recipient + * @description Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the given recipient with the associated amounts and block info + */ + get: operations["get_burnchain_reward_list_by_address"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/burnchain/rewards/{address}/total": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get total burnchain rewards for the given recipient + * @description Retrieves the total burnchain (e.g. Bitcoin) rewards for a given recipient `address` + */ + get: operations["get_burnchain_rewards_total_by_address"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/stx": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get account STX balance + * @description Retrieves STX token balance for a given Address or Contract Identifier. + */ + get: operations["get_account_stx_balance"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/balances": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get account balances + * @description Retrieves total account balance information for a given Address or Contract Identifier. This includes the balances of STX Tokens, Fungible Tokens and Non-Fungible Tokens for the account. + */ + get: operations["get_account_balance"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/transactions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get account transactions + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get address transactions](/api/get-address-transactions). + * + * Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). + * + * If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. + */ + get: operations["get_account_transactions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/{tx_id}/with_transfers": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get account transaction information for specific transaction + * @deprecated + * @description **NOTE:** This endpoint is deprecated in favor of [Get events for an address transaction](/api/get-address-transaction-events). + * + * Retrieves transaction details for a given Transaction Id `tx_id`, for a given account or contract Identifier. + */ + get: operations["get_single_transaction_with_transfers"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/transactions_with_transfers": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get account transactions including STX transfers for each transaction. + * @deprecated + * @description Retrieve all transactions for an account or contract identifier including STX transfers for each transaction. + */ + get: operations["get_account_transactions_with_transfers"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/assets": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get account assets + * @description Retrieves a list of all assets events associated with an account or a Contract Identifier. This includes Transfers, Mints. + */ + get: operations["get_account_assets"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/stx_inbound": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get inbound STX transfers + * @description Retrieves a list of STX transfers with memos to the given principal. This includes regular transfers from a stx-transfer transaction type, + * and transfers from contract-call transactions a the `send-many-memo` bulk sending contract. + */ + get: operations["get_account_inbound"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/mempool": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Transactions for address + * @description Retrieves all transactions for a given address that are currently in mempool + */ + get: operations["get_address_mempool_transactions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/address/{principal}/nonces": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get the latest nonce used by an account + * @description Retrieves the latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions. + */ + get: operations["get_account_nonces"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/search/{id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Search + * @description Search blocks, transactions, contracts, or accounts by hash/ID + */ + get: operations["search_by_id"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/{pox}/events": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Get latest PoX events */ + get: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + pox: "pox2" | "pox3" | "pox4"; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record; + }; + }; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/{pox}/tx/{tx_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Get PoX events for a transaction */ + get: { + parameters: { + query?: never; + header?: never; + path: { + pox: "pox2" | "pox3" | "pox4"; + tx_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record; + }; + }; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/{pox}/stacker/{principal}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Get events for a stacking address */ + get: { + parameters: { + query?: never; + header?: never; + path: { + pox: "pox2" | "pox3" | "pox4"; + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record; + }; + }; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/{pox}/{pool_principal}/delegations": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Stacking pool members + * @description Retrieves the list of stacking pool members for a given delegator principal. + */ + get: operations["get_pool_delegations"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/faucets/btc": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Add testnet BTC tokens to address + * @description Add 1 BTC token to the specified testnet BTC address. + * + * The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block + * explorer. The tokens are delivered once the transaction has been included in a block. + * + * **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. + */ + post: operations["run_faucet_btc"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/faucets/btc/{address}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Get BTC balance for address */ + get: operations["get_btc_balance"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v1/faucets/stx": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Get STX testnet tokens + * @description Add 500 STX tokens to the specified testnet address. Testnet STX addresses begin with `ST`. If the `stacking` + * parameter is set to `true`, the faucet will add the required number of tokens for individual stacking to the + * specified testnet address. + * + * The endpoint returns the transaction ID, which you can use to view the transaction in the + * [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has + * been included in an anchor block. + * + * A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing + * failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat). + * + * **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. + */ + post: operations["run_faucet_stx"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/blocks/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get blocks + * @description Retrieves a list of recently mined blocks + */ + get: operations["get_blocks"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/blocks/average-times": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get average block times + * @description Retrieves average block times (in seconds) + */ + get: operations["get_average_block_times"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/blocks/{height_or_hash}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get block + * @description Retrieves a single block + */ + get: operations["get_block"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/blocks/{height_or_hash}/transactions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get transactions by block + * @description Retrieves transactions confirmed in a single block + */ + get: operations["get_transactions_by_block"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/burn-blocks/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get burn blocks + * @description Retrieves a list of recent burn blocks + */ + get: operations["get_burn_blocks"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/burn-blocks/{height_or_hash}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get burn block + * @description Retrieves a single burn block + */ + get: operations["get_burn_block"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/burn-blocks/{height_or_hash}/blocks": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get blocks by burn block + * @description Retrieves a list of blocks confirmed by a specific burn block + */ + get: operations["get_blocks_by_burn_block"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/smart-contracts/status": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get smart contracts status + * @description Retrieves the deployment status of multiple smart contracts. + */ + get: operations["get_smart_contracts_status"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/mempool/fees": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get mempool transaction fee priorities + * @description Returns estimated fee priorities (in micro-STX) for all transactions that are currently in the mempool. Also returns priorities separated by transaction type. + */ + get: operations["get_mempool_fee_priorities"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/pox/cycles": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get PoX cycles + * @description Retrieves a list of PoX cycles + */ + get: operations["get_pox_cycles"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/pox/cycles/{cycle_number}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get PoX cycle + * @description Retrieves details for a PoX cycle + */ + get: operations["get_pox_cycle"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/pox/cycles/{cycle_number}/signers": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get signers in PoX cycle + * @description Retrieves a list of signers in a PoX cycle + */ + get: operations["get_pox_cycle_signers"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/pox/cycles/{cycle_number}/signers/{signer_key}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get signer in PoX cycle + * @description Retrieves details for a signer in a PoX cycle + */ + get: operations["get_pox_cycle_signer"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/pox/cycles/{cycle_number}/signers/{signer_key}/stackers": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get stackers for signer in PoX cycle + * @description Retrieves a list of stackers for a signer in a PoX cycle + */ + get: operations["get_pox_cycle_signer_stackers"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/addresses/{address}/transactions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get address transactions + * @description Retrieves a paginated list of confirmed transactions sent or received by a STX address or Smart Contract ID, alongside the total amount of STX sent or received and the number of STX, FT and NFT transfers contained within each transaction. + * + * More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). + */ + get: operations["get_address_transactions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/extended/v2/addresses/{address}/transactions/{tx_id}/events": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get events for an address transaction + * @description Retrieves a paginated list of all STX, FT and NFT events concerning a STX address or Smart Contract ID within a specific transaction. + */ + get: operations["get_address_transaction_events"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/names/{name}/zonefile/{zoneFileHash}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Historical Zone File + * @description Retrieves the historical zonefile specified by the username and zone hash. + */ + get: operations["get_historical_zone_file"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/names/{name}/subdomains": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Name Subdomains + * @description Retrieves the list of subdomains for a specific name + */ + get: operations["fetch_subdomains_list_for_name"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/names/{name}/zonefile": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Zone File + * @description Retrieves a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. + */ + get: operations["fetch_zone_file"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/names/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get All Names + * @description Retrieves a list of all names known to the node. + */ + get: operations["get_all_names"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/names/{name}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Name Details + * @description Retrieves details of a given name including the `address`, `status` and last transaction id - `last_txid`. + */ + get: operations["get_name_info"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/namespaces/": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get All Namespaces + * @description Retrieves a list of all namespaces known to the node. + */ + get: operations["get_all_namespaces"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/namespaces/{tld}/names": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Namespace Names + * @description Retrieves a list of names within a given namespace. + */ + get: operations["get_namespace_names"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v1/addresses/{blockchain}/{address}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Names Owned by Address + * @description Retrieves a list of names owned by the address provided. + */ + get: operations["get_names_owned_by_address"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/prices/namespaces/{tld}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Namespace Price + * @description Retrieves the price of a namespace. The `amount` given will be in the smallest possible units of the currency. + */ + get: operations["get_namespace_price"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/prices/names/{name}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Name Price + * @description Retrieves the price of a name. The `amount` given will be in the smallest possible units of the currency. + */ + get: operations["get_name_price"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: never; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + get_status: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description the server version that is currently running */ + server_version: string; + /** @description the current server status */ + status: string; + pox_v1_unlock_height?: number | null; + pox_v2_unlock_height?: number | null; + pox_v3_unlock_height?: number | null; + chain_tip?: { + /** @description the current block height */ + block_height: number; + /** @description the current block hash */ + block_hash: string; + /** @description the current index block hash */ + index_block_hash: string; + /** @description the current microblock hash */ + microblock_hash?: string; + /** @description the current microblock sequence number */ + microblock_sequence?: number; + /** @description the current burn chain block height */ + burn_block_height: number; + } | null; + }; + }; + }; + }; + }; + get_transaction_list: { + parameters: { + query?: { + /** @description Result offset */ + offset?: number; + /** @description Results per page */ + limit?: number; + type?: ("coinbase" | "token_transfer" | "smart_contract" | "contract_call" | "poison_microblock" | "tenure_change")[] | string; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + order?: "asc" | "desc"; + /** @description Option to sort results by block height, timestamp, or fee */ + sort_by?: "block_height" | "burn_block_time" | "fee"; + /** @description Option to filter results by sender address */ + from_address?: string; + /** @description Option to filter results by recipient address */ + to_address?: string; + /** + * @description Filter by transactions after this timestamp (unix timestamp in seconds) + * @example 1704067200 + */ + start_time?: number; + /** + * @description Filter by transactions before this timestamp (unix timestamp in seconds) + * @example 1706745599 + */ + end_time?: number; + /** + * @description Option to filter results by contract ID + * @example SP000000000000000000002Q6VF78.pox-4 + */ + contract_id?: string; + /** + * @description Filter by contract call transactions involving this function name + * @example delegate-stx + */ + function_name?: string; + /** + * @description Filter by transactions with this nonce + * @example 123 + */ + nonce?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + }; + }; + get_tx_list_details: { + parameters: { + query: { + tx_id: string[] | string; + /** @description Results per page */ + event_limit?: number; + /** @description Result offset */ + event_offset?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: { + /** @constant */ + found: true; + result: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @constant */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @constant */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @constant */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @constant */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @constant */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @constant */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @constant */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @constant */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @constant */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @constant */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @constant */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @constant */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @constant */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }) | ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @constant */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @constant */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @constant */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @constant */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @constant */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "stx"; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @constant */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @constant */ + type_id: "principal_origin"; + } | { + /** @constant */ + type_id: "principal_standard"; + address: string; + } | { + /** @constant */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @constant */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @constant */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }); + } | { + /** @constant */ + found: false; + result: { + tx_id: string; + }; + }; + }; + }; + }; + }; + }; + get_mempool_transaction_list: { + parameters: { + query?: { + /** + * @description STX Address + * @example SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP + */ + sender_address?: string; + /** + * @description STX Address + * @example SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP + */ + recipient_address?: string; + /** + * @description STX Address + * @example SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP + */ + address?: string; + /** @description Option to sort results by transaction age, size, or fee rate. */ + order_by?: "age" | "size" | "fee"; + /** @description Results order */ + order?: "asc" | "desc"; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description Result offset */ + offset?: number; + /** @description Results per page */ + limit?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of mempool transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + }; + }; + get_dropped_mempool_transaction_list: { + parameters: { + query?: { + /** @description Result offset */ + offset?: number; + /** @description Results per page */ + limit?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of dropped mempool transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + }; + }; + get_mempool_transaction_stats: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns stats on mempool transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Number of tranasction in the mempool, broken down by transaction type. */ + tx_type_counts: { + [key: string]: number; + }; + /** @description The simple mean (average) transaction fee, broken down by transaction type. Note that this does not factor in actual execution costs. The average fee is not a reliable metric for calculating a fee for a new transaction. */ + tx_simple_fee_averages: { + [key: string]: { + p25: number | null; + p50: number | null; + p75: number | null; + p95: number | null; + } & { + [key: string]: unknown; + }; + }; + /** @description The average time (in blocks) that transactions have lived in the mempool. The start block height is simply the current chain-tip of when the attached Stacks node receives the transaction. This timing can be different across Stacks nodes / API instances due to propagation timing differences in the p2p network. */ + tx_ages: { + [key: string]: { + p25: number | null; + p50: number | null; + p75: number | null; + p95: number | null; + } & { + [key: string]: unknown; + }; + }; + /** @description The average byte size of transactions in the mempool, broken down by transaction type. */ + tx_byte_sizes: { + [key: string]: { + p25: number | null; + p50: number | null; + p75: number | null; + p95: number | null; + } & { + [key: string]: unknown; + }; + }; + }; + }; + }; + }; + }; + get_filtered_events: { + parameters: { + query?: { + /** + * @description Transaction ID + * @example 0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6 + */ + tx_id?: string; + address?: string; + type?: ("smart_contract_log" | "stx_lock" | "stx_asset" | "fungible_token_asset" | "non_fungible_token_asset")[] | string; + /** @description Result offset */ + offset?: number; + /** @description Results per page */ + limit?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + }; + }; + }; + }; + }; + get_transaction_by_id: { + parameters: { + query?: { + /** @description Results per page */ + event_limit?: number; + /** @description Result offset */ + event_offset?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + /** + * @description Transaction ID + * @example 0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6 + */ + tx_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }) | ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }); + }; + }; + /** @description Default Response */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; + get_raw_transaction_by_id: { + parameters: { + query?: { + /** @description Results per page */ + event_limit?: number; + /** @description Result offset */ + event_offset?: number; + }; + header?: never; + path: { + /** + * @description Transaction ID + * @example 0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6 + */ + tx_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET raw transaction */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + raw_tx: string; + }; + }; + }; + /** @description Default Response */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; + get_transactions_by_block_hash: { + parameters: { + query?: { + /** @description Result offset */ + offset?: number; + /** @description Results per page */ + limit?: number; + }; + header?: never; + path: { + block_hash: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + /** @description Default Response */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; + get_transactions_by_block_height: { + parameters: { + query?: { + /** @description Result offset */ + offset?: number; + /** @description Results per page */ + limit?: number; + }; + header?: never; + path: { + /** + * @description Block height + * @example 777678 + */ + height: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + /** @description Default Response */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; + get_stx_supply: { + parameters: { + query?: { + /** + * @description Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. Note that the `block height` is referred to the stacks blockchain. + * @example 777678 + */ + height?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns network target block times */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description String quoted decimal number of the percentage of STX that have unlocked */ + unlocked_percent: string; + /** @description String quoted decimal number of the total possible number of STX */ + total_stx: string; + /** @description String quoted decimal number of the STX that have been mined or unlocked */ + unlocked_stx: string; + /** @description The block height at which this information was queried */ + block_height: number; + }; + }; + }; + }; + }; + get_stx_supply_total_supply_plain: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + content?: unknown; + }; + }; + }; + }; + }; + get_stx_supply_circulating_plain: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + content?: unknown; + }; + }; + }; + }; + }; + get_total_stx_supply_legacy_format: { + parameters: { + query?: { + /** + * @description Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. Note that the `block height` is referred to the stacks blockchain. + * @example 777678 + */ + height?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns network target block times */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description String quoted decimal number of the percentage of STX that have unlocked */ + unlockedPercent: string; + /** @description String quoted decimal number of the total possible number of STX */ + totalStacks: string; + /** @description Same as `totalStacks` but formatted with comma thousands separators */ + totalStacksFormatted: string; + /** @description String quoted decimal number of the STX that have been mined or unlocked */ + unlockedSupply: string; + /** @description Same as `unlockedSupply` but formatted with comma thousands separators */ + unlockedSupplyFormatted: string; + /** @description The block height at which this information was queried */ + blockHeight: string; + }; + }; + }; + }; + }; + get_network_block_times: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns network target block times */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + mainnet: { + target_block_time: number; + }; + testnet: { + target_block_time: number; + }; + }; + }; + }; + }; + }; + get_network_block_time_by_network: { + parameters: { + query?: never; + header?: never; + path: { + network: "testnet" | "mainnet"; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that target block time for a given network */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + target_block_time: number; + }; + }; + }; + }; + }; + get_nft_holdings: { + parameters: { + query: { + /** + * @description token owner's STX address or Smart Contract ID + * @example SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v3 + */ + principal: string; + asset_identifiers?: string[]; + /** @description max number of tokens to fetch */ + limit?: number; + /** @description index of first tokens to fetch */ + offset?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. */ + tx_metadata: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of Non-Fungible Token holdings */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + asset_identifier: string; + /** @description Non-Fungible Token value */ + value: { + /** @description Hex string representing the identifier of the Non-Fungible Token */ + hex: string; + /** @description Readable string of the Non-Fungible Token identifier */ + repr: string; + }; + block_height: number; + tx_id: string; + } | { + asset_identifier: string; + /** @description Non-Fungible Token value */ + value: { + /** @description Hex string representing the identifier of the Non-Fungible Token */ + hex: string; + /** @description Readable string of the Non-Fungible Token identifier */ + repr: string; + }; + block_height: number; + tx: { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }; + })[]; + }; + }; + }; + }; + }; + get_nft_history: { + parameters: { + query: { + /** + * @description asset class identifier + * @example SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild + */ + asset_identifier: string; + /** + * @description hex representation of the token's unique value + * @example 0x0100000000000000000000000000000803 + */ + value: string; + /** @description max number of events to fetch */ + limit?: number; + /** @description index of first event to fetch */ + offset?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. */ + tx_metadata: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of Non-Fungible Token history events */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + sender?: string | null; + recipient?: string; + event_index: number; + asset_event_type: string; + tx_id: string; + } | { + sender?: string | null; + recipient?: string; + event_index: number; + asset_event_type: string; + tx: { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }; + })[]; + }; + }; + }; + }; + }; + get_nft_mints: { + parameters: { + query: { + /** + * @description asset class identifier + * @example SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild + */ + asset_identifier: string; + /** @description max number of events to fetch */ + limit?: number; + /** @description index of first event to fetch */ + offset?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. */ + tx_metadata: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of Non-Fungible Token mint events for an asset identifier */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + recipient?: string; + event_index: number; + /** @description Non-Fungible Token value */ + value: { + /** @description Hex string representing the identifier of the Non-Fungible Token */ + hex: string; + /** @description Readable string of the Non-Fungible Token identifier */ + repr: string; + }; + tx_id: string; + } | { + recipient?: string; + event_index: number; + /** @description Non-Fungible Token value */ + value: { + /** @description Hex string representing the identifier of the Non-Fungible Token */ + hex: string; + /** @description Readable string of the Non-Fungible Token identifier */ + repr: string; + }; + tx: { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }; + })[]; + }; + }; + }; + }; + }; + get_ft_holders: { + parameters: { + query?: { + /** @description max number of holders to fetch */ + limit?: number; + /** @description index of first holder to fetch */ + offset?: number; + }; + header?: never; + path: { + /** @description fungible token identifier */ + token: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** + * @description The total supply of the token (the sum of all balances) + * @example 5817609278457 + */ + total_supply: string; + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** + * @description Principal of the token holder + * @example SP3G2QZHYDZPJ2FBN2V2MB74T5ZQ6FQK2P5QJ2K6 + */ + address: string; + /** + * @description The balance of the token held by the address + * @example 174823763 + */ + balance: string; + }[]; + }; + }; + }; + }; + }; + get_contracts_by_trait: { + parameters: { + query: { + /** @description JSON abi of the trait. */ + trait_abi: string; + /** @description max number of contracts fetch */ + limit?: number; + /** @description index of first contract event to fetch */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET list of contracts */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + results: { + tx_id: string; + canonical: boolean; + contract_id: string; + block_height: number; + clarity_version: number | null; + source_code: string; + abi: string | null; + }[]; + }; + }; + }; + }; + }; + get_contract_by_id: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description Contract identifier formatted as `.` + * @example SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles + */ + contract_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A Smart Contract Detail */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + tx_id: string; + canonical: boolean; + contract_id: string; + block_height: number; + clarity_version: number | null; + source_code: string; + abi: string | null; + }; + }; + }; + }; + }; + get_contract_events_by_id: { + parameters: { + query?: { + /** @description max number of events to fetch */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + /** + * @description Contract identifier formatted as `.` + * @example SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles + */ + contract_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of events */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + limit: number; + offset: number; + results: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + }; + }; + }; + }; + }; + fetch_fee_rate: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** @description Request to fetch fee for a transaction */ + requestBody: { + content: { + "application/json": { + /** @description A serialized transaction */ + transaction: string; + }; + }; + }; + responses: { + /** @description Get fee rate information. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + fee_rate: number; + }; + }; + }; + }; + }; + get_microblock_list: { + parameters: { + query?: { + /** @description Max number of microblocks to fetch */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns microblocks */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description Set to `true` if the microblock corresponds to the canonical chain tip. */ + canonical: boolean; + /** @description Set to `true` if the microblock was not orphaned in a following anchor block. Defaults to `true` if the following anchor block has not yet been created. */ + microblock_canonical: boolean; + /** @description The SHA512/256 hash of this microblock. */ + microblock_hash: string; + /** @description A hint to describe how to order a set of microblocks. Starts at 0. */ + microblock_sequence: number; + /** @description The SHA512/256 hash of the previous signed microblock in this stream. */ + microblock_parent_hash: string; + /** @description The anchor block height that confirmed this microblock. */ + block_height: number; + /** @description The height of the anchor block that preceded this microblock. */ + parent_block_height: number; + /** @description The hash of the anchor block that preceded this microblock. */ + parent_block_hash: string; + /** @description The hash of the Bitcoin block that preceded this microblock. */ + parent_burn_block_hash: string; + /** @description The block timestamp of the Bitcoin block that preceded this microblock. */ + parent_burn_block_time: number; + /** @description The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the bitcoin block that preceded this microblock. */ + parent_burn_block_time_iso: string; + /** @description The height of the Bitcoin block that preceded this microblock. */ + parent_burn_block_height: number; + block_hash: string | null; + /** @description List of transactions included in the microblock */ + txs: string[]; + }[]; + }; + }; + }; + }; + }; + get_microblock_by_hash: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description Hash of the microblock + * @example 0x3bfcdf84b3012adb544cf0f6df4835f93418c2269a3881885e27b3d58eb82d47 + */ + hash: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A microblock */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Set to `true` if the microblock corresponds to the canonical chain tip. */ + canonical: boolean; + /** @description Set to `true` if the microblock was not orphaned in a following anchor block. Defaults to `true` if the following anchor block has not yet been created. */ + microblock_canonical: boolean; + /** @description The SHA512/256 hash of this microblock. */ + microblock_hash: string; + /** @description A hint to describe how to order a set of microblocks. Starts at 0. */ + microblock_sequence: number; + /** @description The SHA512/256 hash of the previous signed microblock in this stream. */ + microblock_parent_hash: string; + /** @description The anchor block height that confirmed this microblock. */ + block_height: number; + /** @description The height of the anchor block that preceded this microblock. */ + parent_block_height: number; + /** @description The hash of the anchor block that preceded this microblock. */ + parent_block_hash: string; + /** @description The hash of the Bitcoin block that preceded this microblock. */ + parent_burn_block_hash: string; + /** @description The block timestamp of the Bitcoin block that preceded this microblock. */ + parent_burn_block_time: number; + /** @description The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the bitcoin block that preceded this microblock. */ + parent_burn_block_time_iso: string; + /** @description The height of the Bitcoin block that preceded this microblock. */ + parent_burn_block_height: number; + block_hash: string | null; + /** @description List of transactions included in the microblock */ + txs: string[]; + }; + }; + }; + }; + }; + get_unanchored_txs: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + }; + }; + get_block_list: { + parameters: { + query?: { + /** @description max number of blocks to fetch */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns blocks */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + /** @description List of transactions included in the block */ + txs: string[]; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_hash: string; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_sequence: number; + /** @description List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list. */ + microblocks_accepted: string[]; + /** @description List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list. */ + microblocks_streamed: string[]; + /** @description List of txs counts in each accepted microblock */ + microblock_tx_count: { + [key: string]: number; + }; + }[]; + }; + }; + }; + }; + }; + get_block_by_height: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description Height of the block + * @example 10000 + */ + height: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A block */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + /** @description List of transactions included in the block */ + txs: string[]; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_hash: string; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_sequence: number; + /** @description List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list. */ + microblocks_accepted: string[]; + /** @description List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list. */ + microblocks_streamed: string[]; + /** @description List of txs counts in each accepted microblock */ + microblock_tx_count: { + [key: string]: number; + }; + }; + }; + }; + }; + }; + get_block_by_burn_block_height: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description Height of the burn chain block + * @example 744603 + */ + burn_block_height: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A block */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + /** @description List of transactions included in the block */ + txs: string[]; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_hash: string; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_sequence: number; + /** @description List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list. */ + microblocks_accepted: string[]; + /** @description List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list. */ + microblocks_streamed: string[]; + /** @description List of txs counts in each accepted microblock */ + microblock_tx_count: { + [key: string]: number; + }; + }; + }; + }; + }; + }; + get_block_by_hash: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description Hash of the block + * @example 0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79 + */ + hash: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A block */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + /** @description List of transactions included in the block */ + txs: string[]; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_hash: string; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_sequence: number; + /** @description List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list. */ + microblocks_accepted: string[]; + /** @description List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list. */ + microblocks_streamed: string[]; + /** @description List of txs counts in each accepted microblock */ + microblock_tx_count: { + [key: string]: number; + }; + }; + }; + }; + }; + }; + get_block_by_burn_block_hash: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description Hash of the burnchain block + * @example 0x00000000000000000002bba732926cf68b6eda3e2cdbc2a85af79f10efeeeb10 + */ + burn_block_hash: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description A block */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + /** @description List of transactions included in the block */ + txs: string[]; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_hash: string; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_sequence: number; + /** @description List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list. */ + microblocks_accepted: string[]; + /** @description List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list. */ + microblocks_streamed: string[]; + /** @description List of txs counts in each accepted microblock */ + microblock_tx_count: { + [key: string]: number; + }; + }; + }; + }; + }; + }; + get_burnchain_reward_slot_holders: { + parameters: { + query?: { + /** @description max number of items to fetch */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description Set to `true` if block corresponds to the canonical burchchain tip */ + canonical: boolean; + /** @description The hash representing the burnchain block */ + burn_block_hash: string; + /** @description Height of the burnchain block */ + burn_block_height: number; + /** @description The recipient address that validly received PoX commitments, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) */ + address: string; + /** @description The index position of the reward entry, useful for ordering when there's more than one slot per burnchain block */ + slot_index: number; + }[]; + }; + }; + }; + }; + }; + get_burnchain_reward_slot_holders_by_address: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + /** + * @description Reward slot holder recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format + * @example 36hQtSEXBMevo5chpxhfAGiCTSC34QKgda + */ + address: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of burnchain reward recipients and amounts */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description Set to `true` if block corresponds to the canonical burchchain tip */ + canonical: boolean; + /** @description The hash representing the burnchain block */ + burn_block_hash: string; + /** @description Height of the burnchain block */ + burn_block_height: number; + /** @description The recipient address that validly received PoX commitments, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) */ + address: string; + /** @description The index position of the reward entry, useful for ordering when there's more than one slot per burnchain block */ + slot_index: number; + }[]; + }; + }; + }; + }; + }; + get_burnchain_reward_list: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of burnchain reward recipients and amounts */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + limit: number; + offset: number; + results: { + /** @description Set to `true` if block corresponds to the canonical burchchain tip */ + canonical: boolean; + /** @description The hash representing the burnchain block */ + burn_block_hash: string; + /** @description Height of the burnchain block */ + burn_block_height: number; + /** @description The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin) */ + burn_amount: string; + /** @description The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) */ + reward_recipient: string; + /** @description The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin) */ + reward_amount: string; + /** @description The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block */ + reward_index: number; + }[]; + }; + }; + }; + }; + }; + get_burnchain_reward_list_by_address: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + /** + * @description Reward recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format + * @example 36hQtSEXBMevo5chpxhfAGiCTSC34QKgda + */ + address: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of burnchain reward recipients and amounts */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + limit: number; + offset: number; + results: { + /** @description Set to `true` if block corresponds to the canonical burchchain tip */ + canonical: boolean; + /** @description The hash representing the burnchain block */ + burn_block_hash: string; + /** @description Height of the burnchain block */ + burn_block_height: number; + /** @description The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin) */ + burn_amount: string; + /** @description The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) */ + reward_recipient: string; + /** @description The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin) */ + reward_amount: string; + /** @description The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block */ + reward_index: number; + }[]; + }; + }; + }; + }; + }; + get_burnchain_rewards_total_by_address: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description Reward recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format + * @example 36hQtSEXBMevo5chpxhfAGiCTSC34QKgda + */ + address: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Total burnchain rewards made to a recipient */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) */ + reward_recipient: string; + /** @description The total amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin) */ + reward_amount: string; + }; + }; + }; + }; + }; + get_account_stx_balance: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. */ + until_block?: string; + }; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns address balances */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + balance: string; + total_sent: string; + total_received: string; + total_fees_sent: string; + total_miner_rewards_received: string; + /** @description The transaction where the lock event occurred. Empty if no tokens are locked. */ + lock_tx_id: string; + /** @description The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked. */ + locked: string; + /** @description The STX chain block height of when the lock event occurred. Zero if no tokens are locked. */ + lock_height: number; + /** @description The burnchain block height of when the lock event occurred. Zero if no tokens are locked. */ + burnchain_lock_height: number; + /** @description The burnchain block height of when the tokens unlock. Zero if no tokens are locked. */ + burnchain_unlock_height: number; + } & { + /** + * AddressTokenOfferingLocked + * @description Token Offering Locked + */ + token_offering_locked?: { + /** @description Micro-STX amount still locked at current block height. */ + total_locked: string; + /** @description Micro-STX amount unlocked at current block height. */ + total_unlocked: string; + unlock_schedule: { + /** @description Micro-STX amount locked at this block height. */ + amount: string; + block_height: number; + }[]; + }; + }; + }; + }; + }; + }; + get_account_balance: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. */ + until_block?: string; + }; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns address balances */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** StxBalance */ + stx: { + balance: string; + total_sent: string; + total_received: string; + total_fees_sent: string; + total_miner_rewards_received: string; + /** @description The transaction where the lock event occurred. Empty if no tokens are locked. */ + lock_tx_id: string; + /** @description The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked. */ + locked: string; + /** @description The STX chain block height of when the lock event occurred. Zero if no tokens are locked. */ + lock_height: number; + /** @description The burnchain block height of when the lock event occurred. Zero if no tokens are locked. */ + burnchain_lock_height: number; + /** @description The burnchain block height of when the tokens unlock. Zero if no tokens are locked. */ + burnchain_unlock_height: number; + }; + fungible_tokens: { + [key: string]: { + balance: string; + total_sent: string; + total_received: string; + }; + }; + non_fungible_tokens: { + [key: string]: { + count: string; + total_sent: string; + total_received: string; + }; + }; + /** + * AddressTokenOfferingLocked + * @description Token Offering Locked + */ + token_offering_locked?: { + /** @description Micro-STX amount still locked at current block height. */ + total_locked: string; + /** @description Micro-STX amount unlocked at current block height. */ + total_unlocked: string; + unlock_schedule: { + /** @description Micro-STX amount locked at this block height. */ + amount: string; + block_height: number; + }[]; + }; + }; + }; + }; + }; + }; + get_account_transactions: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + /** @description Filter for transactions only at this given block height */ + height?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. */ + until_block?: string; + }; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description GET request that returns account transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + }; + }; + get_single_transaction_with_transfers: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + /** + * @description Transaction ID + * @example 0x34d79c7cfc2fe525438736733e501a4bf0308a5556e3e080d1e2c0858aad7448 + */ + tx_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Transaction with STX transfers for a given address */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + tx: { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }; + /** @description Total sent from the given address, including the tx fee, in micro-STX as an integer string. */ + stx_sent: string; + /** @description Total received by the given address in micro-STX as an integer string. */ + stx_received: string; + stx_transfers: { + /** @description Amount transferred in micro-STX as an integer string. */ + amount: string; + /** @description Principal that sent STX. This is unspecified if the STX were minted. */ + sender?: string; + /** @description Principal that received STX. This is unspecified if the STX were burned. */ + recipient?: string; + }[]; + ft_transfers?: { + /** @description Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals. */ + amount: string; + /** @description Fungible Token asset identifier. */ + asset_identifier: string; + /** @description Principal that sent the asset. */ + sender?: string; + /** @description Principal that received the asset. */ + recipient?: string; + }[]; + nft_transfers?: { + /** @description Non Fungible Token asset value. */ + value: { + hex: string; + repr: string; + }; + /** @description Non Fungible Token asset identifier. */ + asset_identifier: string; + /** @description Principal that sent the asset. */ + sender?: string; + /** @description Principal that received the asset. */ + recipient?: string; + }[]; + }; + }; + }; + }; + }; + get_account_transactions_with_transfers: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + /** @description Filter for transactions only at this given block height */ + height?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. */ + until_block?: string; + }; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + tx: { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }; + /** @description Total sent from the given address, including the tx fee, in micro-STX as an integer string. */ + stx_sent: string; + /** @description Total received by the given address in micro-STX as an integer string. */ + stx_received: string; + stx_transfers: { + /** @description Amount transferred in micro-STX as an integer string. */ + amount: string; + /** @description Principal that sent STX. This is unspecified if the STX were minted. */ + sender?: string; + /** @description Principal that received STX. This is unspecified if the STX were burned. */ + recipient?: string; + }[]; + ft_transfers?: { + /** @description Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals. */ + amount: string; + /** @description Fungible Token asset identifier. */ + asset_identifier: string; + /** @description Principal that sent the asset. */ + sender?: string; + /** @description Principal that received the asset. */ + recipient?: string; + }[]; + nft_transfers?: { + /** @description Non Fungible Token asset value. */ + value: { + hex: string; + repr: string; + }; + /** @description Non Fungible Token asset identifier. */ + asset_identifier: string; + /** @description Principal that sent the asset. */ + sender?: string; + /** @description Principal that received the asset. */ + recipient?: string; + }[]; + }[]; + }; + }; + }; + }; + }; + get_account_assets: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. */ + until_block?: string; + }; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + }; + }; + }; + }; + }; + get_account_inbound: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + /** @description Filter for transactions only at this given block height */ + height?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. */ + until_block?: string; + }; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description Principal that sent this transfer */ + sender: string; + /** @description Transfer amount in micro-STX as integer string */ + amount: string; + /** @description Hex encoded memo bytes associated with the transfer */ + memo: string; + /** @description Block height at which this transfer occurred */ + block_height: number; + /** @description The transaction ID in which this transfer occurred */ + tx_id: string; + /** @description Indicates if the transfer is from a stx-transfer transaction or a contract-call transaction */ + transfer_type: "bulk-send" | "stx-transfer" | "stx-transfer-memo"; + /** @description Index of the transaction within a block */ + tx_index: number; + }[]; + }; + }; + }; + }; + }; + get_address_mempool_transactions: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description List of mempool transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + }; + }; + get_account_nonces: { + parameters: { + query?: { + /** + * @description Optionally get the nonce at a given block height. + * @example 66119 + */ + block_height?: number; + /** + * @description Optionally get the nonce at a given block hash. Note - Use either of the query parameters but not both at a time. + * @example 0x72d53f3cba39e149dcd42708e535bdae03d73e60d2fe853aaf61c0b392f521e9 + */ + block_hash?: string; + }; + header?: never; + path: { + /** + * @description Stacks address or a Contract identifier + * @example SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + */ + principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description The latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + last_mempool_tx_nonce: number | null; + last_executed_tx_nonce: number | null; + /** @description The likely nonce required for creating the next transaction, based on the last nonces seen by the API. This can be incorrect if the API's mempool or transactions aren't fully synchronized, even by a small amount, or if a previous transaction is still propagating through the Stacks blockchain network when this endpoint is called. */ + possible_next_nonce: number; + /** @description Nonces that appear to be missing and likely causing a mempool transaction to be stuck. */ + detected_missing_nonces: number[]; + /** @description Nonces currently in mempool for this address. */ + detected_mempool_nonces: number[]; + }; + }; + }; + }; + }; + search_by_id: { + parameters: { + query?: { + /** @description This includes the detailed data for purticular hash in the response */ + include_metadata?: boolean; + }; + header?: never; + path: { + /** + * @description The hex hash string for a block or transaction, account address, or contract address + * @example 0xcf8b233f19f6c07d2dc1963302d2436efd36e9afac127bf6582824a13961c06d + */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @enum {boolean} */ + found: true; + result: { + /** @description The id used to search this query. */ + entity_id: string; + /** @enum {string} */ + entity_type: "standard_address"; + /** + * AddressStxBalance + * @description GET request that returns address balances + */ + metadata?: { + balance: string; + total_sent: string; + total_received: string; + total_fees_sent: string; + total_miner_rewards_received: string; + /** @description The transaction where the lock event occurred. Empty if no tokens are locked. */ + lock_tx_id: string; + /** @description The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked. */ + locked: string; + /** @description The STX chain block height of when the lock event occurred. Zero if no tokens are locked. */ + lock_height: number; + /** @description The burnchain block height of when the lock event occurred. Zero if no tokens are locked. */ + burnchain_lock_height: number; + /** @description The burnchain block height of when the tokens unlock. Zero if no tokens are locked. */ + burnchain_unlock_height: number; + } & { + /** + * AddressTokenOfferingLocked + * @description Token Offering Locked + */ + token_offering_locked?: { + /** @description Micro-STX amount still locked at current block height. */ + total_locked: string; + /** @description Micro-STX amount unlocked at current block height. */ + total_unlocked: string; + unlock_schedule: { + /** @description Micro-STX amount locked at this block height. */ + amount: string; + block_height: number; + }[]; + }; + }; + } | { + /** @description The id used to search this query. */ + entity_id: string; + /** @enum {string} */ + entity_type: "block_hash"; + block_data: { + canonical: boolean; + hash: string; + parent_block_hash: string; + burn_block_time: number; + height: number; + }; + /** + * Block + * @description A block + */ + metadata?: { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + /** @description List of transactions included in the block */ + txs: string[]; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_hash: string; + /** @description The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. */ + parent_microblock_sequence: number; + /** @description List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list. */ + microblocks_accepted: string[]; + /** @description List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list. */ + microblocks_streamed: string[]; + /** @description List of txs counts in each accepted microblock */ + microblock_tx_count: { + [key: string]: number; + }; + }; + } | { + /** @description The id used to search this query. */ + entity_id: string; + /** @enum {string} */ + entity_type: "contract_address"; + tx_data?: { + canonical?: boolean; + block_hash?: string; + burn_block_time?: number; + block_height?: number; + tx_type: string; + tx_id: string; + }; + metadata?: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }) | ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }); + } | { + /** @description The id used to search this query. */ + entity_id: string; + /** @enum {string} */ + entity_type: "mempool_tx_id"; + tx_data: { + tx_type: string; + }; + metadata?: { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Status of the transaction */ + tx_status: "pending" | "dropped_replace_by_fee" | "dropped_replace_across_fork" | "dropped_too_expensive" | "dropped_stale_garbage_collect" | "dropped_problematic"; + /** @description A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. */ + receipt_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. */ + receipt_time_iso: string; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }; + } | { + /** @description The id used to search this query. */ + entity_id: string; + /** @enum {string} */ + entity_type: "tx_id"; + tx_data: { + canonical: boolean; + block_hash: string; + burn_block_time: number; + block_height: number; + tx_type: string; + }; + metadata?: { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }; + }; + }; + }; + }; + /** @description Default Response */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @enum {boolean} */ + found: false; + result: { + entity_type: "tx_id" | "mempool_tx_id" | "block_hash" | "standard_address" | "contract_address" | "unknown_hash" | "invalid_term"; + }; + error: string; + }; + }; + }; + }; + }; + get_pool_delegations: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + /** @description If specified, only delegation events after the given block will be included */ + after_block?: number; + height?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + pox: "pox2" | "pox3" | "pox4"; + /** + * @description Address principal of the stacking pool delegator + * @example SPSCWDV3RKV5ZRN1FQD84YE1NQFEDJ9R1F4DYQ11 + */ + pool_principal: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description The principal of the pool member that issued the delegation */ + stacker: string; + /** @description The pox-addr value specified by the stacker in the delegation operation */ + pox_addr?: string; + /** @description The amount of uSTX delegated by the stacker */ + amount_ustx: string; + /** @description The optional burnchain block unlock height that the stacker may have specified */ + burn_block_unlock_height?: number; + /** @description The block height at which the stacker delegation transaction was mined at */ + block_height: number; + /** @description The tx_id of the stacker delegation operation */ + tx_id: string; + }[]; + }; + }; + }; + }; + }; + run_faucet_btc: { + parameters: { + query?: { + /** + * @description A valid testnet BTC address + * @example 2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts + */ + address?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + /** @description A valid testnet BTC address */ + address?: string; + } | null; + }; + }; + responses: { + /** @description POST request that initiates a transfer of tokens to a specified testnet address */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** + * @description Indicates if the faucet call was successful + * @enum {boolean} + */ + success: true; + /** @description The transaction ID for the faucet call */ + txid: string; + /** @description Raw transaction in hex string representation */ + raw_tx: string; + }; + }; + }; + /** @description Default Response */ + "4XX": { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @enum {boolean} */ + success: false; + /** @description Error message */ + error: string; + }; + }; + }; + }; + }; + get_btc_balance: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description A valid testnet BTC address + * @example 2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts + */ + address: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Address balance in BTC */ + balance: number; + }; + }; + }; + /** @description Default Response */ + "4XX": { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @enum {boolean} */ + success: false; + /** @description Error message */ + error: string; + }; + }; + }; + }; + }; + run_faucet_stx: { + parameters: { + query?: { + /** + * @description A valid testnet STX address + * @example ST3M7N9Q9HDRM7RVP1Q26P0EE69358PZZAZD7KMXQ + */ + address?: string; + /** @description Request the amount of STX tokens needed for individual address stacking */ + stacking?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + /** @description [Deprecated -- use query param rather than POST body] A valid testnet STX address */ + address?: string; + } | null; + }; + }; + responses: { + /** @description POST request that initiates a transfer of tokens to a specified testnet address */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** + * @description Indicates if the faucet call was successful + * @enum {boolean} + */ + success: true; + /** @description The transaction ID for the faucet call */ + txId: string; + /** @description Raw transaction in hex string representation */ + txRaw: string; + }; + }; + }; + /** @description Default Response */ + "4XX": { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** + * @description Indicates if the faucet call was successful + * @enum {boolean} + */ + success: false; + /** @description Error message */ + error: string; + help?: string; + }; + }; + }; + }; + }; + get_blocks: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Index block hash of the parent block */ + parent_index_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Number of transactions included in the block */ + tx_count: number; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + }[]; + }; + }; + }; + }; + }; + get_average_block_times: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Average block times over the last hour (in seconds) */ + last_1h: number; + /** @description Average block times over the last 24 hours (in seconds) */ + last_24h: number; + /** @description Average block times over the last 7 days (in seconds) */ + last_7d: number; + /** @description Average block times over the last 30 days (in seconds) */ + last_30d: number; + }; + }; + }; + }; + }; + get_block: { + parameters: { + query?: never; + header?: never; + path: { + height_or_hash: "latest" | string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Index block hash of the parent block */ + parent_index_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Number of transactions included in the block */ + tx_count: number; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + }; + }; + }; + }; + }; + get_transactions_by_block: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + height_or_hash: "latest" | string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + })[]; + }; + }; + }; + }; + }; + get_burn_blocks: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Hashes of the Stacks blocks included in the burn block */ + stacks_blocks: string[]; + /** @description Average time between blocks in seconds. Returns 0 if there is only one block in the burn block. */ + avg_block_time: number; + /** @description Total number of transactions in the Stacks blocks associated with this burn block */ + total_tx_count: number; + }[]; + }; + }; + }; + }; + }; + get_burn_block: { + parameters: { + query?: never; + header?: never; + path: { + height_or_hash: "latest" | string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Hashes of the Stacks blocks included in the burn block */ + stacks_blocks: string[]; + /** @description Average time between blocks in seconds. Returns 0 if there is only one block in the burn block. */ + avg_block_time: number; + /** @description Total number of transactions in the Stacks blocks associated with this burn block */ + total_tx_count: number; + }; + }; + }; + }; + }; + get_blocks_by_burn_block: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + height_or_hash: "latest" | string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": Record; + }; + }; + }; + }; + get_smart_contracts_status: { + parameters: { + query: { + contract_id: string[] | string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: { + /** @constant */ + found: true; + result: { + /** @description Smart contract deployment transaction status */ + status: string; + /** @description Deployment transaction ID */ + tx_id: string; + /** @description Smart contract ID */ + contract_id: string; + /** @description Height of the transaction confirmation block */ + block_height?: number; + }; + } | { + /** @constant */ + found: false; + }; + }; + }; + }; + }; + }; + get_mempool_fee_priorities: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + all: { + no_priority: number; + low_priority: number; + medium_priority: number; + high_priority: number; + }; + token_transfer?: { + no_priority: number; + low_priority: number; + medium_priority: number; + high_priority: number; + }; + contract_call?: { + no_priority: number; + low_priority: number; + medium_priority: number; + high_priority: number; + }; + smart_contract?: { + no_priority: number; + low_priority: number; + medium_priority: number; + high_priority: number; + }; + }; + }; + }; + }; + }; + get_pox_cycles: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + block_height: number; + index_block_hash: string; + cycle_number: number; + total_weight: number; + total_stacked_amount: string; + total_signers: number; + }[]; + }; + }; + }; + }; + }; + get_pox_cycle: { + parameters: { + query?: never; + header?: never; + path: { + /** @description PoX cycle number */ + cycle_number: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + block_height: number; + index_block_hash: string; + cycle_number: number; + total_weight: number; + total_stacked_amount: string; + total_signers: number; + }; + }; + }; + }; + }; + get_pox_cycle_signers: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + /** @description PoX cycle number */ + cycle_number: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + signing_key: string; + /** @description The Stacks address derived from the signing_key. */ + signer_address: string; + weight: number; + stacked_amount: string; + weight_percent: number; + stacked_amount_percent: number; + /** @description The number of solo stackers associated with this signer. */ + solo_stacker_count: number; + /** @description The number of pooled stackers associated with this signer. */ + pooled_stacker_count: number; + }[]; + }; + }; + }; + }; + }; + get_pox_cycle_signer: { + parameters: { + query?: never; + header?: never; + path: { + /** @description PoX cycle number */ + cycle_number: number; + /** + * @description Signer key + * @example 0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d + */ + signer_key: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + signing_key: string; + /** @description The Stacks address derived from the signing_key. */ + signer_address: string; + weight: number; + stacked_amount: string; + weight_percent: number; + stacked_amount_percent: number; + /** @description The number of solo stackers associated with this signer. */ + solo_stacker_count: number; + /** @description The number of pooled stackers associated with this signer. */ + pooled_stacker_count: number; + }; + }; + }; + }; + }; + get_pox_cycle_signer_stackers: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + /** @description PoX cycle number */ + cycle_number: number; + /** + * @description Signer key + * @example 0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d + */ + signer_key: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + stacker_address: string; + stacked_amount: string; + pox_address: string; + stacker_type: "solo" | "pooled"; + }[]; + }; + }; + }; + }; + }; + get_address_transactions: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + address: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + tx: { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "token_transfer"; + token_transfer: { + recipient_address: string; + /** @description Transfer amount as Integer string (64-bit unsigned integer) */ + amount: string; + /** @description Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) */ + memo: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "smart_contract"; + smart_contract: { + clarity_version: number | null; + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Clarity code of the smart contract being deployed */ + source_code: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "contract_call"; + contract_call: { + /** @description Contract identifier formatted as `.` */ + contract_id: string; + /** @description Name of the Clarity function to be invoked */ + function_name: string; + /** @description Function definition, including function name and type as well as parameter names and types */ + function_signature: string; + function_args?: { + hex: string; + repr: string; + name: string; + type: string; + }[]; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "poison_microblock"; + poison_microblock: { + /** @description Hex encoded microblock header */ + microblock_header_1: string; + /** @description Hex encoded microblock header */ + microblock_header_2: string; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "coinbase"; + coinbase_payload: { + /** @description Hex encoded 32-byte scratch space for block leader's use */ + data: string; + alt_recipient?: string | null; + vrf_proof?: string | null; + }; + } | { + /** @description Transaction ID */ + tx_id: string; + /** @description Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. */ + nonce: number; + /** @description Transaction fee as Integer string (64-bit unsigned integer). */ + fee_rate: string; + /** @description Address of the transaction initiator */ + sender_address: string; + sponsor_nonce?: number; + /** @description Denotes whether the originating account is the same as the paying account */ + sponsored: boolean; + sponsor_address?: string; + post_condition_mode: "allow" | "deny"; + post_conditions: ({ + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "stx"; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent_equal_to" | "sent_greater_than" | "sent_greater_than_or_equal_to" | "sent_less_than" | "sent_less_than_or_equal_to"; + amount: string; + /** @enum {string} */ + type: "fungible"; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + } | { + principal: { + /** @enum {string} */ + type_id: "principal_origin"; + } | { + /** @enum {string} */ + type_id: "principal_standard"; + address: string; + } | { + /** @enum {string} */ + type_id: "principal_contract"; + address: string; + contract_name: string; + }; + condition_code: "sent" | "not_sent"; + /** @enum {string} */ + type: "non_fungible"; + asset_value: { + hex: string; + repr: string; + }; + asset: { + asset_name: string; + contract_address: string; + contract_name: string; + }; + })[]; + /** @description `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. */ + anchor_mode: "on_chain_only" | "off_chain_only" | "any"; + /** @description Hash of the blocked this transactions was associated with */ + block_hash: string; + /** @description Height of the block this transactions was associated with */ + block_height: number; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description Height of the anchor burn block. */ + burn_block_height: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Unix timestamp (in seconds) indicating when this parent block was mined */ + parent_burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. */ + parent_burn_block_time_iso: string; + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Index of the transaction, indicating the order. Starts at `0` and increases with each transaction */ + tx_index: number; + /** @description Status of the transaction */ + tx_status: "success" | "abort_by_response" | "abort_by_post_condition"; + /** @description Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. */ + tx_result: { + /** @description Hex string representing the value fo the transaction result */ + hex: string; + /** @description Readable string of the transaction result */ + repr: string; + }; + /** @description Number of transaction events */ + event_count: number; + /** @description Hash of the previous block. */ + parent_block_hash: string; + /** @description True if the transaction is included in a microblock that has not been confirmed by an anchor block. */ + is_unanchored: boolean; + /** @description The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. */ + microblock_hash: string; + /** @description The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). */ + microblock_sequence: number; + /** @description Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. */ + microblock_canonical: boolean; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + events: (({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "smart_contract_log"; + tx_id: string; + contract_log: { + contract_id: string; + topic: string; + value: { + hex: string; + repr: string; + }; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_lock"; + tx_id: string; + stx_lock_event: { + locked_amount: string; + unlock_height: number; + locked_address: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "stx_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + sender: string; + recipient: string; + amount: string; + memo?: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + amount: string; + }; + }) | ({ + event_index: number; + } & { + /** @enum {string} */ + event_type: "non_fungible_token_asset"; + tx_id: string; + asset: { + asset_event_type: "transfer" | "mint" | "burn"; + asset_id: string; + sender: string; + recipient: string; + value: { + hex: string; + repr: string; + }; + }; + }))[]; + /** @enum {string} */ + tx_type: "tenure_change"; + tenure_change_payload: { + /** @description Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. */ + tenure_consensus_hash: string; + /** @description Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. */ + prev_tenure_consensus_hash: string; + /** @description Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. */ + burn_view_consensus_hash: string; + /** @description (Hex string) Stacks Block hash */ + previous_tenure_end: string; + /** @description The number of blocks produced in the previous tenure. */ + previous_tenure_blocks: number; + /** @description Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. */ + cause: "block_found" | "extended"; + /** @description (Hex string) The ECDSA public key hash of the current tenure. */ + pubkey_hash: string; + }; + }; + /** @description Total sent from the given address, including the tx fee, in micro-STX as an integer string. */ + stx_sent: string; + /** @description Total received by the given address in micro-STX as an integer string. */ + stx_received: string; + events: { + stx: { + transfer: number; + mint: number; + burn: number; + }; + ft: { + transfer: number; + mint: number; + burn: number; + }; + nft: { + transfer: number; + mint: number; + burn: number; + }; + }; + }[]; + }; + }; + }; + }; + }; + get_address_transaction_events: { + parameters: { + query?: { + /** @description Results per page */ + limit?: number; + /** @description Result offset */ + offset?: number; + }; + header?: never; + path: { + address: string; + /** + * @description Transaction ID + * @example 0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6 + */ + tx_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: ({ + /** @enum {string} */ + type: "stx"; + event_index: number; + data: { + type: "transfer" | "mint" | "burn"; + /** @description Amount transferred in micro-STX as an integer string. */ + amount: string; + /** @description Principal that sent STX. This is unspecified if the STX were minted. */ + sender?: string; + /** @description Principal that received STX. This is unspecified if the STX were burned. */ + recipient?: string; + }; + } | { + /** @enum {string} */ + type: "ft"; + event_index: number; + data: { + type: "transfer" | "mint" | "burn"; + /** @description Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals. */ + amount: string; + /** @description Fungible Token asset identifier. */ + asset_identifier: string; + /** @description Principal that sent the asset. */ + sender?: string; + /** @description Principal that received the asset. */ + recipient?: string; + }; + } | { + /** @enum {string} */ + type: "nft"; + event_index: number; + data: { + type: "transfer" | "mint" | "burn"; + /** @description Non Fungible Token asset identifier. */ + asset_identifier: string; + value: { + hex: string; + repr: string; + }; + /** @description Principal that sent the asset. */ + sender?: string; + /** @description Principal that received the asset. */ + recipient?: string; + }; + })[]; + }; + }; + }; + }; + }; + get_historical_zone_file: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + /** + * @description fully-qualified name + * @example muneeb.id + */ + name: string; + /** + * @description zone file hash + * @example b100a68235244b012854a95f9114695679002af9 + */ + zoneFileHash: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Fetches the historical zonefile specified by the username and zone hash. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + zonefile: string; + }; + }; + }; + /** @description Error */ + "4XX": { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; + fetch_subdomains_list_for_name: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + /** + * @description fully-qualified name + * @example id.blockstack + */ + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Fetch a list of subdomains in a name. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": string[]; + }; + }; + }; + }; + fetch_zone_file: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + /** + * @description fully-qualified name + * @example bar.test + */ + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example $ORIGIN bar.test + * $TTL 3600 + * _https._tcp URI 10 1 "https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json" + * */ + zonefile: string; + }; + }; + }; + /** @description Error */ + "4XX": { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** @example Invalid name or subdomain */ + error: string; + }; + }; + }; + }; + }; + get_all_names: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + /** @description names are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter. */ + page?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Fetch a list of all names known to the node. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": string[]; + }; + }; + /** @description Error */ + "4XX": { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; + get_name_info: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + /** + * @description fully-qualified name + * @example muneeb.id + */ + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Get name details */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + address: string; + /** @example stacks */ + blockchain: string; + expire_block?: number; + grace_period?: number; + last_txid: string; + resolver?: string; + status: string; + zonefile: string; + zonefile_hash: string; + }; + }; + }; + }; + }; + get_all_namespaces: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Default Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + /** + * BnsGetAllNamespacesResponse + * @description Fetch a list of all namespaces known to the node. + */ + namespaces: string[]; + }; + }; + }; + }; + }; + get_namespace_names: { + parameters: { + query?: { + /** + * @description namespace values are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter. + * @example 22 + */ + page?: number; + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + /** + * @description the namespace to fetch names from. + * @example id + */ + tld: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Fetch a list of names from the namespace. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": string[]; + }; + }; + }; + }; + get_names_owned_by_address: { + parameters: { + query?: { + /** + * @description Include data from unanchored (i.e. unconfirmed) microblocks + * @example true + */ + unanchored?: boolean; + }; + header?: never; + path: { + /** + * @description the layer-1 blockchain for the address + * @example stacks + */ + blockchain: string; + /** + * @description the address to lookup + * @example SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7 + */ + address: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Retrieves a list of names owned by the address provided. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + names: string[]; + }; + }; + }; + /** @description Error */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; + get_namespace_price: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description the namespace to fetch price for + * @example id + */ + tld: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Fetch price for namespace. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + units: string; + amount: string; + }; + }; + }; + /** @description Error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; + get_name_price: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description the name to query price information for + * @example muneeb.id + */ + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Fetch price for name. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + units: string; + amount: string; + }; + }; + }; + /** @description Error */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + error: string; + }; + }; + }; + }; + }; +} diff --git a/client/src/index.ts b/client/src/index.ts index d367ed100..baff5bb83 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -1,3 +1,13 @@ -export * from './generated'; -export * from './ws'; +import { default as createOpenApiClient, ClientOptions } from "openapi-fetch"; +import type { paths } from "./generated/schema"; +import { BASE_PATH } from "./common"; + +export function createClient(options?: ClientOptions) { + return createOpenApiClient({ baseUrl: BASE_PATH, ...options }); +} +export default createClient; + +export * from './common'; export * from './socket-io'; +export * from './ws'; +export type * from './types'; diff --git a/client/src/socket-io/index.ts b/client/src/socket-io/index.ts index f8dedb695..62578c7c0 100644 --- a/client/src/socket-io/index.ts +++ b/client/src/socket-io/index.ts @@ -1,18 +1,18 @@ import { io, Socket } from 'socket.io-client'; import type { ManagerOptions, SocketOptions } from 'socket.io-client'; -import { +import type { + AddressStxBalanceResponse, + AddressTransactionWithTransfers, + Block, ClientToServerMessages, - Topic, - ServerToClientMessages, MempoolTransaction, - Transaction, - Block, Microblock, - AddressTransactionWithTransfers, NftEvent, - AddressStxBalanceResponse, -} from '@stacks/stacks-blockchain-api-types'; -import { BASE_PATH } from '../generated/runtime'; + ServerToClientMessages, + Topic, + Transaction, +} from '../types'; +import { BASE_PATH } from '../common'; export type StacksApiSocket = Socket; diff --git a/client/src/types.d.ts b/client/src/types.d.ts new file mode 100644 index 000000000..09e250de9 --- /dev/null +++ b/client/src/types.d.ts @@ -0,0 +1,105 @@ +import type { operations } from "./generated/schema"; + +export type Transaction = operations['get_transaction_list']['responses']['200']['content']['application/json']['results'][number]; +export type MempoolTransaction = operations['get_mempool_transaction_list']['responses']['200']['content']['application/json']['results'][number]; +export type Block = operations['get_block_by_height']['responses']['200']['content']['application/json']; +export type Microblock = operations['get_microblock_by_hash']['responses']['200']['content']['application/json']; +export type AddressTransactionWithTransfers = operations['get_account_transactions_with_transfers']['responses']['200']['content']['application/json']['results'][number]; +export type AddressStxBalanceResponse = operations['get_account_stx_balance']['responses']['200']['content']['application/json']; +export type RpcAddressTxNotificationParams = AddressTransactionWithTransfers & { + address: string; + tx_id: string; + tx_status: Transaction['tx_status']; + tx_type: Transaction['tx_type']; +}; +export type RpcAddressBalanceNotificationParams = AddressStxBalanceResponse & { + address: string; +}; +export type NftEvent = { + sender?: string; + recipient?: string; + asset_identifier: string; + asset_event_type: string; + value: { + hex: string; + repr: string; + }; + tx_id: string; + tx_index: number; + block_height: number; + event_index: number; +}; +export type RpcTxUpdateSubscriptionParams = { + event: "tx_update"; + tx_id: string; +}; +export type RpcBlockSubscriptionParams = { + event: "block"; +}; +export type RpcMicroblockSubscriptionParams = { + event: "microblock"; +}; +export type RpcMempoolSubscriptionParams = { + event: "mempool"; +}; +export type RpcAddressTxSubscriptionParams = { + event: "address_tx_update"; + address: string; +}; +export type RpcAddressBalanceSubscriptionParams = { + event: "address_balance_update"; + address: string; +}; +export type RpcNftEventSubscriptionParams = { + event: "nft_event"; +}; +export type RpcNftAssetEventSubscriptionParams = { + event: "nft_asset_event"; + asset_identifier: string; + value: string; +}; +export type RpcNftCollectionEventSubscriptionParams = { + event: "nft_collection_event"; + asset_identifier: string; +}; +export type RpcSubscriptionType = + | "tx_update" + | "address_tx_update" + | "address_balance_update" + | "block" + | "microblock" + | "mempool" + | "nft_event" + | "nft_asset_event" + | "nft_collection_event"; +export type AddressTransactionTopic = `address-transaction:${string}`; +export type AddressStxBalanceTopic = `address-stx-balance:${string}`; +export type TransactionTopic = `transaction:${string}`; +export type NftAssetEventTopic = `nft-asset-event:${string}+${string}`; +export type NftCollectionEventTopic = `nft-collection-event:${string}`; +export type Topic = + | 'block' + | 'microblock' + | 'mempool' + | 'nft-event' + | AddressTransactionTopic + | AddressStxBalanceTopic + | TransactionTopic + | NftAssetEventTopic + | NftCollectionEventTopic; +export interface ClientToServerMessages { + subscribe: (topic: Topic | Topic[], callback: (error: string | null) => void) => void; + unsubscribe: (...topic: Topic[]) => void; +} + +export interface ServerToClientMessages { + block: (block: Block) => void; + microblock: (microblock: Microblock) => void; + mempool: (transaction: MempoolTransaction) => void; + 'nft-event': (event: NftEvent) => void; + [key: TransactionTopic]: (transaction: Transaction | MempoolTransaction) => void; + [key: NftAssetEventTopic]: (assetIdentifier: string, value: string, event: NftEvent) => void; + [key: NftCollectionEventTopic]: (assetIdentifier: string, event: NftEvent) => void; + [key: AddressTransactionTopic]: (address: string, stxBalance: AddressTransactionWithTransfers) => void; + [key: AddressStxBalanceTopic]: (address: string, stxBalance: AddressStxBalanceResponse) => void; +} diff --git a/client/src/ws/index.ts b/client/src/ws/index.ts index dd712650f..7b9e4b766 100644 --- a/client/src/ws/index.ts +++ b/client/src/ws/index.ts @@ -1,25 +1,25 @@ import * as JsonRpcLite from 'jsonrpc-lite'; import { EventEmitter } from 'eventemitter3'; -import { - RpcTxUpdateSubscriptionParams, - RpcAddressTxSubscriptionParams, - RpcAddressBalanceSubscriptionParams, - RpcSubscriptionType, +import { BASE_PATH } from '../common'; +import type { Block, - RpcBlockSubscriptionParams, - Microblock, Transaction, - RpcMicroblockSubscriptionParams, - RpcMempoolSubscriptionParams, - MempoolTransaction, - RpcAddressBalanceNotificationParams, + Microblock, RpcAddressTxNotificationParams, + RpcAddressBalanceNotificationParams, NftEvent, + MempoolTransaction, + RpcSubscriptionType, + RpcBlockSubscriptionParams, + RpcMicroblockSubscriptionParams, + RpcMempoolSubscriptionParams, + RpcTxUpdateSubscriptionParams, + RpcAddressTxSubscriptionParams, + RpcAddressBalanceSubscriptionParams, RpcNftEventSubscriptionParams, RpcNftAssetEventSubscriptionParams, - RpcNftCollectionEventSubscriptionParams, -} from '@stacks/stacks-blockchain-api-types'; -import { BASE_PATH } from '../generated/runtime'; + RpcNftCollectionEventSubscriptionParams +} from '../types'; type IWebSocket = import('ws') | WebSocket; diff --git a/client/test/test.ts b/client/test/test.ts deleted file mode 100644 index 95c10165f..000000000 --- a/client/test/test.ts +++ /dev/null @@ -1,29 +0,0 @@ -import fetch from 'cross-fetch'; -import { Configuration, BlocksApi, SmartContractsApi, AccountsApi } from '../src/index'; - -(async () => { - const apiConfig = new Configuration({ - fetchApi: fetch, // `fetch` lib must be specified in Node.js environments - basePath: 'https://api.mainnet.hiro.so', // defaults to http://localhost:3999 - }); - - const blockApi = new BlocksApi(apiConfig); - const blocks = await blockApi.getBlockList({ offset: 0, limit: 10 }); - - const smartContractsApi = new SmartContractsApi(apiConfig); - - const mapEntry = await smartContractsApi.getContractDataMapEntry({ - contractAddress: 'ST000000000000000000002AMW42H', - contractName: 'pox', - mapName: 'reward-cycle-total-stacked', - key: '0x0c000000010c7265776172642d6379636c650100000000000000000000000000000001', - }); - - const accountsApi = new AccountsApi(apiConfig); - const txs = await accountsApi.getAccountTransactions({ - principal: 'ST000000000000000000002AMW42H', - }); -})().catch(e => { - console.error(e); - process.exit(1); -}); diff --git a/client/tsconfig.browser.json b/client/tsconfig.browser.json index d88e818bb..0e34f6390 100644 --- a/client/tsconfig.browser.json +++ b/client/tsconfig.browser.json @@ -4,8 +4,5 @@ "target": "esnext", "module": "esnext", "baseUrl": ".", - "paths": { - "@stacks/stacks-blockchain-api-types": ["../docs"] - } } } diff --git a/client/tsconfig.json b/client/tsconfig.json index 929775ea1..03fd91a83 100644 --- a/client/tsconfig.json +++ b/client/tsconfig.json @@ -9,9 +9,7 @@ "strictNullChecks": false, "outDir": "lib", "baseUrl": ".", - "paths": { - "@stacks/stacks-blockchain-api-types": ["../docs"] - } + "noUncheckedIndexedAccess": true, }, "include": ["./src/**/*.ts"], "typedocOptions": { diff --git a/src/api/controllers/db-controller.ts b/src/api/controllers/db-controller.ts index 48364aacd..90acb7c2b 100644 --- a/src/api/controllers/db-controller.ts +++ b/src/api/controllers/db-controller.ts @@ -42,10 +42,12 @@ import { SyntheticPoxEventName } from '../../pox-helpers'; import { logger } from '../../logger'; import { + AbstractMempoolTransaction, AbstractTransaction, BaseTransaction, CoinbaseTransactionMetadata, ContractCallTransactionMetadata, + MempoolTransaction, PoisonMicroblockTransactionMetadata, SmartContractTransactionMetadata, TenureChangeTransactionMetadata, @@ -56,10 +58,6 @@ import { TransactionNotFound, TransactionSearchResponse, } from '../schemas/entities/transactions'; -import { - AbstractMempoolTransaction, - MempoolTransaction, -} from '../schemas/entities/mempool-transactions'; import { FungibleTokenAssetTransactionEvent, NonFungibleTokenAssetTransactionEvent, diff --git a/src/api/routes/address.ts b/src/api/routes/address.ts index 250192676..87399b665 100644 --- a/src/api/routes/address.ts +++ b/src/api/routes/address.ts @@ -37,12 +37,12 @@ import { InboundStxTransferSchema, } from '../schemas/entities/addresses'; import { PaginatedResponse } from '../schemas/util'; -import { TransactionSchema } from '../schemas/entities/transactions'; -import { TransactionEvent, TransactionEventSchema } from '../schemas/entities/transaction-events'; import { MempoolTransaction, MempoolTransactionSchema, -} from '../schemas/entities/mempool-transactions'; + TransactionSchema, +} from '../schemas/entities/transactions'; +import { TransactionEvent, TransactionEventSchema } from '../schemas/entities/transaction-events'; async function getBlockHeight( untilBlock: number | string | undefined, diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index 6dbf74a45..4f396baca 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -34,13 +34,16 @@ import { UnanchoredParamSchema, } from '../schemas/params'; import { + AbstractMempoolTransactionProperties, + BaseTransactionSchemaProperties, + MempoolTransactionSchema, + TokenTransferTransactionMetadataProperties, TransactionSchema, TransactionSearchResponseSchema, TransactionTypeSchema, TransactionTypeStringSchema, } from '../schemas/entities/transactions'; import { PaginatedResponse } from '../schemas/util'; -import { MempoolTransactionSchema } from '../schemas/entities/mempool-transactions'; import { ErrorResponseSchema, MempoolStatsResponseSchema, @@ -64,11 +67,7 @@ export const TxRoutes: FastifyPluginAsync< schema: { operationId: 'get_transaction_list', summary: 'Get recent transactions', - description: `Retrieves all recently mined transactions - - If using TypeScript, import typings for this response from our types package: - - \`import type { TransactionResults } from '@stacks/stacks-blockchain-api-types';\``, + description: `Retrieves all recently mined transactions`, tags: ['Transactions'], querystring: Type.Object({ offset: OffsetParam(), @@ -212,11 +211,7 @@ export const TxRoutes: FastifyPluginAsync< schema: { operationId: 'get_tx_list_details', summary: 'Get list of details for transactions', - description: `Retrieves a list of transactions for a given list of transaction IDs - - If using TypeScript, import typings for this response from our types package: - - \`import type { Transaction } from '@stacks/stacks-blockchain-api-types';\``, + description: `Retrieves a list of transactions for a given list of transaction IDs`, tags: ['Transactions'], querystring: Type.Object({ tx_id: Type.Union([ @@ -505,9 +500,7 @@ export const TxRoutes: FastifyPluginAsync< schema: { operationId: 'get_transaction_by_id', summary: 'Get transaction', - description: `Retrieves transaction details for a given transaction ID - - \`import type { Transaction } from '@stacks/stacks-blockchain-api-types';\``, + description: `Retrieves transaction details for a given transaction ID`, tags: ['Transactions'], params: Type.Object({ tx_id: TransactionIdParamSchema, diff --git a/src/api/routes/ws/channels/socket-io-channel.ts b/src/api/routes/ws/channels/socket-io-channel.ts index f0088561d..20c72e82c 100644 --- a/src/api/routes/ws/channels/socket-io-channel.ts +++ b/src/api/routes/ws/channels/socket-io-channel.ts @@ -1,4 +1,4 @@ -import { +import type { AddressStxBalanceTopic, AddressTransactionTopic, ClientToServerMessages, @@ -7,7 +7,7 @@ import { ServerToClientMessages, Topic, TransactionTopic, -} from 'docs/socket-io'; +} from 'client/src/types'; import * as http from 'http'; import { Server as SocketIOServer } from 'socket.io'; import { Adapter } from 'socket.io-adapter'; @@ -187,29 +187,20 @@ export class SocketIOChannel extends WebSocketChannel { case 'microblock': { const [microblock] = args as ListenerType; this.prometheus?.sendEvent('microblock'); - this.io - ?.to('microblock') - .emit( - 'microblock', - microblock as import('@stacks/stacks-blockchain-api-types').Microblock - ); + this.io?.to('microblock').emit('microblock', microblock); break; } case 'mempoolTransaction': { const [tx] = args as ListenerType; this.prometheus?.sendEvent('mempool'); - this.io - ?.to('mempool') - .emit('mempool', tx as import('@stacks/stacks-blockchain-api-types').MempoolTransaction); + this.io?.to('mempool').emit('mempool', tx); break; } case 'transaction': { const [tx] = args as ListenerType; this.prometheus?.sendEvent('transaction'); const topic: TransactionTopic = `transaction:${tx.tx_id}`; - this.io - ?.to(topic) - .emit(topic, tx as import('@stacks/stacks-blockchain-api-types').Transaction); + this.io?.to(topic).emit(topic, tx); break; } case 'nftEvent': { @@ -294,6 +285,6 @@ export class SocketIOChannel extends WebSocketChannel { } const validatedSubs = subscriptions.map(isSubValid); const invalidSubs = validatedSubs.filter(validSub => typeof validSub === 'string'); - return invalidSubs.length === 0 ? undefined : (invalidSubs as string[]); + return invalidSubs.length === 0 ? undefined : invalidSubs; } } diff --git a/src/api/routes/ws/channels/ws-rpc-channel.ts b/src/api/routes/ws/channels/ws-rpc-channel.ts index d0881363b..4a162649b 100644 --- a/src/api/routes/ws/channels/ws-rpc-channel.ts +++ b/src/api/routes/ws/channels/ws-rpc-channel.ts @@ -18,28 +18,27 @@ import { notification as jsonRpcNotification, success as jsonRpcSuccess, } from 'jsonrpc-lite'; -import { +import type { RpcTxUpdateSubscriptionParams, RpcAddressTxSubscriptionParams, RpcAddressBalanceSubscriptionParams, RpcBlockSubscriptionParams, RpcMicroblockSubscriptionParams, RpcMempoolSubscriptionParams, - AddressTransactionWithTransfers, AddressStxBalanceResponse, RpcNftEventSubscriptionParams, RpcNftAssetEventSubscriptionParams, RpcNftCollectionEventSubscriptionParams, NftEvent, -} from '@stacks/stacks-blockchain-api-types'; +} from 'client/src/types'; import { getWsMessageTimeoutMs, getWsPingIntervalMs } from '../web-socket-transmitter'; import { logger } from '../../../../logger'; import { isProdEnv, resolveOrTimeout } from '@hirosystems/api-toolkit'; -import { Transaction } from '../../../schemas/entities/transactions'; -import { MempoolTransaction } from '../../..//schemas/entities/mempool-transactions'; +import { Transaction, MempoolTransaction } from '../../../schemas/entities/transactions'; import { Block } from '../../..//schemas/entities/block'; import { Microblock } from '../../..//schemas/entities/microblock'; +import { AddressTransactionWithTransfers } from '../../../schemas/entities/addresses'; type Subscription = | RpcTxUpdateSubscriptionParams diff --git a/src/api/routes/ws/web-socket-channel.ts b/src/api/routes/ws/web-socket-channel.ts index 65c33ee9a..463d5e29b 100644 --- a/src/api/routes/ws/web-socket-channel.ts +++ b/src/api/routes/ws/web-socket-channel.ts @@ -3,12 +3,11 @@ import { AddressStxBalanceResponse, AddressTransactionWithTransfers, NftEvent, -} from 'docs/generated'; +} from 'client/src/types'; import { WebSocketPrometheus } from './web-socket-prometheus'; import { Block } from '../../schemas/entities/block'; import { Microblock } from '../../schemas/entities/microblock'; -import { MempoolTransaction } from '../../schemas/entities/mempool-transactions'; -import { Transaction } from '../../schemas/entities/transactions'; +import { Transaction, MempoolTransaction } from '../../schemas/entities/transactions'; /** * Topics that external API users may subscribe to when looking for real time updates. diff --git a/src/api/routes/ws/web-socket-prometheus.ts b/src/api/routes/ws/web-socket-prometheus.ts index 91a4745d5..de4e5e00d 100644 --- a/src/api/routes/ws/web-socket-prometheus.ts +++ b/src/api/routes/ws/web-socket-prometheus.ts @@ -1,6 +1,6 @@ import * as prom from 'prom-client'; import * as WebSocket from 'ws'; -import { Topic } from '@stacks/stacks-blockchain-api-types'; +import { Topic } from 'client/src/types'; import { Socket } from 'socket.io'; type WebSocketMetricsPrefix = 'socket_io' | 'websocket'; diff --git a/src/api/routes/ws/web-socket-transmitter.ts b/src/api/routes/ws/web-socket-transmitter.ts index 0c23d32e5..eb5132ac7 100644 --- a/src/api/routes/ws/web-socket-transmitter.ts +++ b/src/api/routes/ws/web-socket-transmitter.ts @@ -1,6 +1,6 @@ import * as http from 'http'; import PQueue from 'p-queue'; -import { AddressStxBalanceResponse, AddressTransactionWithTransfers } from 'docs/generated'; +import type { AddressStxBalanceResponse, AddressTransactionWithTransfers } from 'client/src/types'; import { getBlockFromDataStore, getMempoolTxsFromDataStore, @@ -230,7 +230,7 @@ export class WebSocketTransmitter { for (const addressTx of addressTxs) { const parsedTx = parseDbTx(addressTx.tx); const result: AddressTransactionWithTransfers = { - tx: parsedTx as import('@stacks/stacks-blockchain-api-types').Transaction, + tx: parsedTx, stx_sent: addressTx.stx_sent.toString(), stx_received: addressTx.stx_received.toString(), stx_transfers: addressTx.stx_transfers.map(value => { diff --git a/src/api/schemas/entities/mempool-transactions.ts b/src/api/schemas/entities/mempool-transactions.ts index 2a0fd33b8..c3bf19efd 100644 --- a/src/api/schemas/entities/mempool-transactions.ts +++ b/src/api/schemas/entities/mempool-transactions.ts @@ -1,5 +1,6 @@ import { Static, Type } from '@sinclair/typebox'; import { + AbstractMempoolTransactionProperties, BaseTransactionSchemaProperties, CoinbaseTransactionMetadataProperties, ContractCallTransactionMetadataProperties, @@ -10,94 +11,6 @@ import { } from './transactions'; import { Nullable } from '../util'; -const AbstractMempoolTransactionProperties = { - ...BaseTransactionSchemaProperties, - tx_status: Type.Union( - [ - Type.Literal('pending'), - Type.Literal('dropped_replace_by_fee'), - Type.Literal('dropped_replace_across_fork'), - Type.Literal('dropped_too_expensive'), - Type.Literal('dropped_stale_garbage_collect'), - Type.Literal('dropped_problematic'), - ], - { - description: 'Status of the transaction', - } - ), - receipt_time: Type.Number({ - description: - 'A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.', - }), - receipt_time_iso: Type.String({ - description: - 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.', - }), -}; - -const AbstractMempoolTransactionSchema = Type.Object({ - ...AbstractMempoolTransactionProperties, -}); -export type AbstractMempoolTransaction = Static; - -export const TokenTransferMempoolTransactionSchema = Type.Object( - { - ...AbstractMempoolTransactionProperties, - ...TokenTransferTransactionMetadataProperties, - }, - { title: 'TokenTransferMempoolTransaction' } -); - -export const SmartContractMempoolTransactionSchema = Type.Object( - { - ...AbstractMempoolTransactionProperties, - ...SmartContractTransactionMetadataProperties, - }, - { title: 'SmartContractMempoolTransaction' } -); - -export const ContractCallMempoolTransactionSchema = Type.Object( - { - ...AbstractMempoolTransactionProperties, - ...ContractCallTransactionMetadataProperties, - }, - { title: 'ContractCallMempoolTransaction' } -); - -export const PoisonMicroblockMempoolTransactionSchema = Type.Object( - { - ...AbstractMempoolTransactionProperties, - ...PoisonMicroblockTransactionMetadataProperties, - }, - { title: 'PoisonMicroblockMempoolTransaction' } -); - -export const CoinbaseMempoolTransactionSchema = Type.Object( - { - ...AbstractMempoolTransactionProperties, - ...CoinbaseTransactionMetadataProperties, - }, - { title: 'CoinbaseMempoolTransaction' } -); - -export const TenureChangeMempoolTransactionSchema = Type.Object( - { - ...AbstractMempoolTransactionProperties, - ...TenureChangeTransactionMetadataProperties, - }, - { title: 'TenureChangeMempoolTransaction' } -); - -export const MempoolTransactionSchema = Type.Union([ - TokenTransferMempoolTransactionSchema, - SmartContractMempoolTransactionSchema, - ContractCallMempoolTransactionSchema, - PoisonMicroblockMempoolTransactionSchema, - CoinbaseMempoolTransactionSchema, - TenureChangeMempoolTransactionSchema, -]); -export type MempoolTransaction = Static; - export const MempoolStatsSchema = Type.Object( { p25: Nullable(Type.Number()), diff --git a/src/api/schemas/entities/search.ts b/src/api/schemas/entities/search.ts index 53fd0c031..e29bcfe3f 100644 --- a/src/api/schemas/entities/search.ts +++ b/src/api/schemas/entities/search.ts @@ -1,8 +1,7 @@ import { Static, Type } from '@sinclair/typebox'; import { AddressStxBalanceSchema } from './addresses'; import { BlockSchema } from './block'; -import { TransactionSchema } from './transactions'; -import { MempoolTransactionSchema } from './mempool-transactions'; +import { MempoolTransactionSchema, TransactionSchema } from './transactions'; export const AddressSearchResultSchema = Type.Object( { diff --git a/src/api/schemas/entities/transactions.ts b/src/api/schemas/entities/transactions.ts index e30c1048a..b80d6bac1 100644 --- a/src/api/schemas/entities/transactions.ts +++ b/src/api/schemas/entities/transactions.ts @@ -1,7 +1,6 @@ import { Static, Type } from '@sinclair/typebox'; import { CommaStringList, Nullable } from '../util'; import { PostConditionModeSchema, PostConditionSchema } from './post-conditions'; -import { MempoolTransactionSchema } from './mempool-transactions'; import { TransactionEventSchema } from './transaction-events'; export const TransactionType = { @@ -418,6 +417,94 @@ export const TransactionSchema = Type.Union([ ]); export type Transaction = Static; +export const AbstractMempoolTransactionProperties = { + ...BaseTransactionSchemaProperties, + tx_status: Type.Union( + [ + Type.Literal('pending'), + Type.Literal('dropped_replace_by_fee'), + Type.Literal('dropped_replace_across_fork'), + Type.Literal('dropped_too_expensive'), + Type.Literal('dropped_stale_garbage_collect'), + Type.Literal('dropped_problematic'), + ], + { + description: 'Status of the transaction', + } + ), + receipt_time: Type.Integer({ + description: + 'A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.', + }), + receipt_time_iso: Type.String({ + description: + 'An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.', + }), +}; + +const AbstractMempoolTransactionSchema = Type.Object({ + ...AbstractMempoolTransactionProperties, +}); +export type AbstractMempoolTransaction = Static; + +export const TokenTransferMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...TokenTransferTransactionMetadataProperties, + }, + { title: 'TokenTransferMempoolTransaction' } +); + +export const SmartContractMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...SmartContractTransactionMetadataProperties, + }, + { title: 'SmartContractMempoolTransaction' } +); + +export const ContractCallMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...ContractCallTransactionMetadataProperties, + }, + { title: 'ContractCallMempoolTransaction' } +); + +export const PoisonMicroblockMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...PoisonMicroblockTransactionMetadataProperties, + }, + { title: 'PoisonMicroblockMempoolTransaction' } +); + +export const CoinbaseMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...CoinbaseTransactionMetadataProperties, + }, + { title: 'CoinbaseMempoolTransaction' } +); + +export const TenureChangeMempoolTransactionSchema = Type.Object( + { + ...AbstractMempoolTransactionProperties, + ...TenureChangeTransactionMetadataProperties, + }, + { title: 'TenureChangeMempoolTransaction' } +); + +export const MempoolTransactionSchema = Type.Union([ + TokenTransferMempoolTransactionSchema, + SmartContractMempoolTransactionSchema, + ContractCallMempoolTransactionSchema, + PoisonMicroblockMempoolTransactionSchema, + CoinbaseMempoolTransactionSchema, + TenureChangeMempoolTransactionSchema, +]); +export type MempoolTransaction = Static; + export const TransactionFoundSchema = Type.Object( { found: Type.Literal(true), diff --git a/src/tests-2.5/faucet-stx.ts b/src/tests-2.5/faucet-stx.ts index 017f420a0..8497adfe8 100644 --- a/src/tests-2.5/faucet-stx.ts +++ b/src/tests-2.5/faucet-stx.ts @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { RunFaucetResponse } from '@stacks/stacks-blockchain-api-types'; -import { AddressStxBalanceResponse } from 'docs/generated'; +import { RunFaucetResponse, AddressStxBalanceResponse } from '@stacks/stacks-blockchain-api-types'; import * as supertest from 'supertest'; import { Account, diff --git a/src/tests/other-tests.ts b/src/tests/other-tests.ts index e1cb2b602..2656530d8 100644 --- a/src/tests/other-tests.ts +++ b/src/tests/other-tests.ts @@ -12,7 +12,7 @@ import { import { startApiServer, ApiServer } from '../api/init'; import { I32_MAX, microStxToStx, STACKS_DECIMAL_PLACES } from '../helpers'; import { FEE_RATE } from '../api/routes/fee-rate'; -import { FeeRateRequest } from 'docs/generated'; +import { FeeRateRequest } from '@stacks/stacks-blockchain-api-types'; import { PgWriteStore } from '../datastore/pg-write-store'; import { getPagingQueryLimit, ResourceType } from '../api/pagination'; import { PgSqlClient, bufferToHex } from '@hirosystems/api-toolkit'; diff --git a/tsconfig.json b/tsconfig.json index 93a71d566..16e6c8c5f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,6 @@ "baseUrl": ".", "paths": { "@stacks/stacks-blockchain-api-types": ["docs"], - "@stacks/blockchain-api-client": ["client/src"] }, "typeRoots": [ "./src/@types", From ab33e745c2e33a1fb268496c436531838307f45c Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 7 Aug 2024 21:41:56 +0200 Subject: [PATCH 36/56] chore: remove dependencies on old generated types --- docs/generated.d.ts | 4033 ----------------- src/api/controllers/db-controller.ts | 2 +- src/api/rosetta-constants.ts | 26 +- src/api/rosetta-validate.ts | 17 +- src/api/routes/address.ts | 24 +- src/api/routes/burnchain.ts | 20 +- src/api/routes/debug.ts | 2 +- src/api/routes/faucets.ts | 16 +- src/api/routes/microblock.ts | 6 +- src/api/routes/rosetta/account.ts | 4 +- src/api/routes/rosetta/block.ts | 2 +- src/api/routes/rosetta/construction.ts | 2 +- src/api/routes/rosetta/mempool.ts | 2 +- src/api/routes/rosetta/network.ts | 2 +- src/api/routes/tx.ts | 18 +- src/api/schemas/entities/transactions.ts | 6 + src/api/schemas/responses/responses.ts | 98 +- src/rosetta/rosetta-helpers.ts | 4 +- src/rosetta/types.ts | 1034 +++++ src/test-utils/test-helpers.ts | 10 +- src/tests-2.5/block-zero-handling.ts | 47 +- src/tests-2.5/faucet-stx.ts | 7 +- src/tests-2.5/pox-4-btc-address-formats.ts | 16 +- src/tests-2.5/pox-4-burnchain-delegate-stx.ts | 22 +- src/tests-2.5/pox-4-burnchain-stack-stx.ts | 18 +- src/tests-2.5/pox-4-delegate-aggregation.ts | 8 +- .../pox-4-delegate-revoked-stacking.ts | 6 +- src/tests-2.5/pox-4-delegate-stacking.ts | 10 +- src/tests-2.5/pox-4-rosetta-btc-addr-types.ts | 2 +- src/tests-2.5/pox-4-rosetta-segwit.ts | 16 +- src/tests-2.5/pox-4-stack-extend-increase.ts | 26 +- src/tests-bns/api.ts | 55 - .../construction.ts | 2 +- src/tests-rosetta/api.ts | 2 +- src/tests-rosetta/offline-api-tests.ts | 2 +- src/tests-subnets/subnet-tests.ts | 20 +- src/tests/block-tests.ts | 3 +- src/tests/microblock-tests.ts | 18 +- src/tests/other-tests.ts | 3 +- src/tests/socket-io-tests.ts | 18 +- src/tests/token-tests.ts | 5 +- src/tests/tx-tests.ts | 2 +- src/tests/websocket-tests.ts | 28 +- tsconfig.build.json | 5 +- tsconfig.json | 3 - 45 files changed, 1335 insertions(+), 4337 deletions(-) delete mode 100644 docs/generated.d.ts create mode 100644 src/rosetta/types.ts diff --git a/docs/generated.d.ts b/docs/generated.d.ts deleted file mode 100644 index 5a42986cc..000000000 --- a/docs/generated.d.ts +++ /dev/null @@ -1,4033 +0,0 @@ -/* - This file is generated automatically. **DO NOT MODIFY THIS FILE DIRECTLY** - Updates are made by editing the JSON Schema files in the 'docs/' directory, - then running the 'npm build' script. -*/ - -export type SchemaMergeRootStub = - | AddressAssetsListResponse - | AddressBalanceResponse - | AddressStxBalanceResponse - | AddressStxInboundListResponse - | AddressTransactionEventListResponse - | AddressTransactionsWithTransfersListResponse - | AddressTransactionsListResponse - | AddressTransactionsV2ListResponse - | AverageBlockTimesResponse - | BlockListResponse - | BurnBlockListResponse - | NakamotoBlockListResponse - | BnsError - | BnsFetchFileZoneResponse - | BnsGetAllNamesResponse - | BnsGetAllSubdomainsResponse - | BnsFetchHistoricalZoneFileResponse - | BnsGetNameInfoResponse - | BnsGetNamePriceResponse - | BnsNamesOwnByAddressResponse - | BnsGetSubdomainAtTx - | BnsGetAllNamespacesNamesResponse - | BnsGetAllNamespacesResponse - | BnsGetNamespacePriceResponse - | GetAllSubdomainsInName - | BurnchainRewardSlotHolderListResponse - | BurnchainRewardListResponse - | ReadOnlyFunctionSuccessResponse - | ContractListResponse - | AccountDataResponse - | MapEntryResponse - | ContractInterfaceResponse - | ContractSourceResponse - | CoreNodeFeeResponse - | CoreNodeInfoResponse - | CoreNodePoxResponse - | TransactionFeeEstimateResponse - | TransactionFeeEstimateRequest - | RunFaucetResponse - | FeeRateRequest - | FeeRate - | NetworkBlockTimeResponse - | NetworkBlockTimesResponse - | ServerStatusResponse - | GetStxCirculatingSupplyPlainResponse - | GetStxSupplyLegacyFormatResponse - | GetStxTotalSupplyPlainResponse - | GetStxSupplyResponse - | MempoolFeePriorities - | MicroblockListResponse - | UnanchoredTransactionListResponse - | RosettaAccountBalanceRequest - | RosettaAccountBalanceResponse - | RosettaBlockRequest - | RosettaBlockResponse - | RosettaBlockTransactionRequest - | RosettaBlockTransactionResponse - | RosettaConstructionCombineRequest - | RosettaConstructionCombineResponse - | RosettaConstructionDeriveRequest - | RosettaConstructionDeriveResponse - | RosettaConstructionHashRequest - | RosettaConstructionHashResponse - | RosettaConstructionMetadataRequest - | RosettaConstructionMetadataResponse - | RosettaConstructionParseRequest - | RosettaConstructionParseResponse - | RosettaConstructionPayloadsRequest - | RosettaConstructionPayloadResponse - | RosettaConstructionPreprocessRequest - | RosettaConstructionPreprocessResponse - | RosettaConstructionSubmitRequest - | RosettaConstructionSubmitResponse - | RosettaMempoolRequest - | RosettaMempoolResponse - | RosettaMempoolTransactionRequest - | RosettaMempoolTransactionResponse - | RosettaNetworkListRequest - | RosettaNetworkListResponse - | RosettaOptionsRequest - | RosettaNetworkOptionsResponse - | RosettaStatusRequest - | RosettaNetworkStatusResponse - | AddressSearchResult - | BlockSearchResult - | ContractSearchResult - | SearchErrorResult - | MempoolTxSearchResult - | SearchSuccessResult - | TxSearchResult - | SearchResult - | SmartContractsStatusResponse - | SmartContractFound - | SmartContractNotFound - | PoolDelegationsResponse - | PoxCycleSignerStackersListResponse - | PoxCycleSignersListResponse - | PoxCycleListResponse - | FungibleTokenHolderList - | { - [k: string]: unknown | undefined; - } - | NonFungibleTokenHistoryEventList - | NonFungibleTokenHoldingsList - | NonFungibleTokenMintList - | MempoolTransactionStatsResponse - | MempoolTransactionListResponse - | GetRawTransactionResult - | TransactionEventsResponse - | TransactionResults - | PostCoreNodeTransactionsError - | AddressNonces - | AddressTransactionEvent - | AddressTransaction - | AddressTokenOfferingLocked - | AddressTransactionWithTransfers - | AddressUnlockSchedule - | FtBalance - | NftBalance - | StxBalance - | Block - | BurnBlock - | NakamotoBlock - | BurnchainRewardSlotHolder - | BurnchainReward - | BurnchainRewardsTotal - | ReadOnlyFunctionArgs - | SmartContract - | TargetBlockTime - | ChainTip - | AbstractMempoolTransaction - | MempoolTokenTransferTransaction - | MempoolSmartContractTransaction - | MempoolContractCallTransaction - | MempoolPoisonMicroblockTransaction - | MempoolCoinbaseTransaction - | MempoolTenureChangeTransaction - | MempoolTransactionStatus - | MempoolTransaction - | Microblock - | NftEvent - | PostConditionStx - | PostConditionFungible - | PostConditionNonFungible - | PostConditionFungibleConditionCode - | PostConditionMode - | PostConditionNonFungibleConditionCode - | PostConditionPrincipalType - | PostConditionPrincipal - | PostConditionType - | PostCondition - | RosettaAccountIdentifier - | RosettaAccount - | RosettaMaxFeeAmount - | RosettaAmount - | RosettaBlockIdentifierHash - | RosettaBlockIdentifierHeight - | RosettaBlockIdentifier - | RosettaBlock - | RosettaCoinChange - | RosettaCoin - | RosettaOptions - | RosettaCurrency - | RosettaErrorNoDetails - | RosettaError - | RosettaGenesisBlockIdentifier - | NetworkIdentifier - | RosettaPeers - | RosettaOldestBlockIdentifier - | RosettaOperationIdentifier - | RosettaOperationStatus - | RosettaOperation - | OtherTransactionIdentifier - | RosettaParentBlockIdentifier - | RosettaPartialBlockIdentifier - | RosettaPublicKey - | RosettaRelatedOperation - | SignatureType - | RosettaSignature - | SigningPayload - | RosettaSubAccount - | RosettaSyncStatus - | TransactionIdentifier - | RosettaTransaction - | SmartContractStatus - | PoolDelegation - | PoxCycle - | PoxSigner - | PoxStacker - | FtHolderEntry - | NonFungibleTokenHistoryEventWithTxId - | NonFungibleTokenHistoryEventWithTxMetadata - | NonFungibleTokenHistoryEvent - | NonFungibleTokenHoldingWithTxId - | NonFungibleTokenHoldingWithTxMetadata - | NonFungibleTokenHolding - | NonFungibleTokenMintWithTxId - | NonFungibleTokenMintWithTxMetadata - | NonFungibleTokenMint - | AbstractTransactionEvent - | TransactionEventAssetType - | TransactionEventAsset - | TransactionEventFungibleAsset - | TransactionEventNonFungibleAsset - | TransactionEventSmartContractLog - | TransactionEventStxAsset - | TransactionEventStxLock - | TransactionEventType - | TransactionEvent - | AbstractTransaction - | TransactionAnchorModeType - | BaseTransaction - | TokenTransferTransactionMetadata - | TokenTransferTransaction - | SmartContractTransactionMetadata - | SmartContractTransaction - | ContractCallTransactionMetadata - | ContractCallTransaction - | PoisonMicroblockTransactionMetadata - | PoisonMicroblockTransaction - | CoinbaseTransactionMetadata - | CoinbaseTransaction - | TenureChangeTransactionMetadata - | TenureChangeTransaction - | TransactionFound - | TransactionList - | TransactionMetadata - | TransactionNotFound - | TransactionStatus - | TransactionType - | Transaction - | InboundStxTransfer - | RpcAddressBalanceNotificationResponse - | RpcAddressBalanceSubscriptionParams - | RpcAddressBalanceSubscriptionRequest - | RpcAddressTxNotificationResponse - | RpcAddressTxSubscriptionParams - | RpcAddressTxSubscriptionRequest - | RpcBlockNotificationResponse - | RpcBlockSubscriptionParams - | RpcBlockSubscriptionRequest - | RpcMempoolNotificationResponse - | RpcMempoolSubscriptionParams - | RpcMempoolSubscriptionRequest - | RpcMicroblockNotificationResponse - | RpcMicroblockSubscriptionParams - | RpcMicroblockSubscriptionRequest - | RpcNftAssetEventSubscriptionParams - | RpcNftAssetEventSubscriptionRequest - | RpcNftCollectionEventSubscriptionParams - | RpcNftCollectionEventSubscriptionRequest - | RpcNftEventNotificationResponse - | RpcNftEventSubscriptionParams - | RpcNftEventSubscriptionRequest - | RpcSubscriptionType - | RpcTxUpdateNotificationResponse - | RpcTxUpdateSubscriptionParams - | RpcTxUpdateSubscriptionRequest; -export type TransactionEvent = - | TransactionEventSmartContractLog - | TransactionEventStxLock - | TransactionEventStxAsset - | TransactionEventFungibleAsset - | TransactionEventNonFungibleAsset; -/** - * Only present in `smart_contract` and `contract_call` tx types. - */ -export type TransactionEventSmartContractLog = AbstractTransactionEvent & { - event_type: "smart_contract_log"; - tx_id: string; - contract_log: { - contract_id: string; - topic: string; - value: { - hex: string; - repr: string; - }; - }; -}; -/** - * Only present in `smart_contract` and `contract_call` tx types. - */ -export type TransactionEventStxLock = AbstractTransactionEvent & { - event_type: "stx_lock"; - tx_id: string; - stx_lock_event: { - locked_amount: string; - unlock_height: number; - locked_address: string; - }; -}; -/** - * Only present in `smart_contract` and `contract_call` tx types. - */ -export type TransactionEventStxAsset = AbstractTransactionEvent & { - event_type: "stx_asset"; - tx_id: string; - asset: TransactionEventAsset; -}; -export type TransactionEventAssetType = "transfer" | "mint" | "burn"; -export type TransactionEventFungibleAsset = AbstractTransactionEvent & { - event_type: "fungible_token_asset"; - tx_id: string; - asset: { - asset_event_type: string; - asset_id: string; - sender: string; - recipient: string; - amount: string; - }; -}; -export type TransactionEventNonFungibleAsset = AbstractTransactionEvent & { - event_type: "non_fungible_token_asset"; - tx_id: string; - asset: { - asset_event_type: string; - asset_id: string; - sender: string; - recipient: string; - value: { - hex: string; - repr: string; - }; - }; -}; -/** - * GET request that returns address balances - */ -export type AddressStxBalanceResponse = StxBalance & { - token_offering_locked?: AddressTokenOfferingLocked; -}; -/** - * Address Transaction Event - */ -export type AddressTransactionEvent = - | { - type: "stx"; - event_index: number; - data: { - type: "transfer" | "mint" | "burn"; - /** - * Amount transferred in micro-STX as an integer string. - */ - amount: string; - /** - * Principal that sent STX. This is unspecified if the STX were minted. - */ - sender?: string; - /** - * Principal that received STX. This is unspecified if the STX were burned. - */ - recipient?: string; - }; - } - | { - type: "ft"; - event_index: number; - data: { - type: "transfer" | "mint" | "burn"; - /** - * Fungible Token asset identifier. - */ - asset_identifier: string; - /** - * Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals. - */ - amount: string; - /** - * Principal that sent the asset. - */ - sender?: string; - /** - * Principal that received the asset. - */ - recipient?: string; - }; - } - | { - type: "nft"; - event_index: number; - data: { - type: "transfer" | "mint" | "burn"; - /** - * Non Fungible Token asset identifier. - */ - asset_identifier: string; - /** - * Non Fungible Token asset value. - */ - value: { - hex: string; - repr: string; - }; - /** - * Principal that sent the asset. - */ - sender?: string; - /** - * Principal that received the asset. - */ - recipient?: string; - }; - }; -/** - * Describes all transaction types on Stacks 2.0 blockchain - */ -export type Transaction = - | TokenTransferTransaction - | SmartContractTransaction - | ContractCallTransaction - | PoisonMicroblockTransaction - | CoinbaseTransaction - | TenureChangeTransaction; -/** - * Describes representation of a Type-0 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-0-transferring-an-asset - */ -export type TokenTransferTransaction = AbstractTransaction & TokenTransferTransactionMetadata; -/** - * Anchored transaction metadata. All mined/anchored Stacks transactions have these properties. - */ -export type AbstractTransaction = BaseTransaction & { - /** - * Hash of the blocked this transactions was associated with - */ - block_hash: string; - /** - * Height of the block this transactions was associated with - */ - block_height: number; - /** - * Unix timestamp (in seconds) indicating when this block was mined. - */ - block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. - */ - block_time_iso: string; - /** - * Height of the anchor burn block. - */ - burn_block_height: number; - /** - * Unix timestamp (in seconds) indicating when this block was mined - */ - burn_block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined. - */ - burn_block_time_iso: string; - /** - * Unix timestamp (in seconds) indicating when this parent block was mined - */ - parent_burn_block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined. - */ - parent_burn_block_time_iso: string; - /** - * Set to `true` if block corresponds to the canonical chain tip - */ - canonical: boolean; - /** - * Index of the transaction, indicating the order. Starts at `0` and increases with each transaction - */ - tx_index: number; - tx_status: TransactionStatus; - /** - * Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction. - */ - tx_result: { - /** - * Hex string representing the value fo the transaction result - */ - hex: string; - /** - * Readable string of the transaction result - */ - repr: string; - }; - /** - * Number of transaction events - */ - event_count: number; - /** - * Hash of the previous block. - */ - parent_block_hash: string; - /** - * True if the transaction is included in a microblock that has not been confirmed by an anchor block. - */ - is_unanchored: boolean; - /** - * The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string. - */ - microblock_hash: string; - /** - * The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index). - */ - microblock_sequence: number; - /** - * Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork. - */ - microblock_canonical: boolean; - /** - * Execution cost read count. - */ - execution_cost_read_count: number; - /** - * Execution cost read length. - */ - execution_cost_read_length: number; - /** - * Execution cost runtime. - */ - execution_cost_runtime: number; - /** - * Execution cost write count. - */ - execution_cost_write_count: number; - /** - * Execution cost write length. - */ - execution_cost_write_length: number; - /** - * List of transaction events - */ - events: TransactionEvent[]; -}; -export type PostConditionMode = "allow" | "deny"; -/** - * Post-conditionscan limit the damage done to a user's assets - */ -export type PostCondition = PostConditionStx | PostConditionFungible | PostConditionNonFungible; -export type PostConditionStx = { - principal: PostConditionPrincipal; -} & { - condition_code: PostConditionFungibleConditionCode; - amount: string; - type: "stx"; -}; -export type PostConditionPrincipal = - | { - /** - * String literal of type `PostConditionPrincipalType` - */ - type_id: "principal_origin"; - } - | { - /** - * String literal of type `PostConditionPrincipalType` - */ - type_id: "principal_standard"; - address: string; - } - | { - /** - * String literal of type `PostConditionPrincipalType` - */ - type_id: "principal_contract"; - address: string; - contract_name: string; - }; -/** - * A fungible condition code encodes a statement being made for either STX or a fungible token, with respect to the originating account. - */ -export type PostConditionFungibleConditionCode = - | "sent_equal_to" - | "sent_greater_than" - | "sent_greater_than_or_equal_to" - | "sent_less_than" - | "sent_less_than_or_equal_to"; -export type PostConditionFungible = { - principal: PostConditionPrincipal; -} & { - condition_code: PostConditionFungibleConditionCode; - type: "fungible"; - amount: string; - asset: { - asset_name: string; - contract_address: string; - contract_name: string; - }; -}; -export type PostConditionNonFungible = { - principal: PostConditionPrincipal; -} & { - condition_code: PostConditionNonFungibleConditionCode; - type: "non_fungible"; - asset_value: { - hex: string; - repr: string; - }; - asset: { - asset_name: string; - contract_address: string; - contract_name: string; - }; -}; -/** - * A non-fungible condition code encodes a statement being made about a non-fungible token, with respect to whether or not the particular non-fungible token is owned by the account. - */ -export type PostConditionNonFungibleConditionCode = "sent" | "not_sent"; -/** - * `on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction. - */ -export type TransactionAnchorModeType = "on_chain_only" | "off_chain_only" | "any"; -/** - * Status of the transaction - */ -export type TransactionStatus = "success" | "abort_by_response" | "abort_by_post_condition"; -/** - * Describes representation of a Type-1 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-1-instantiating-a-smart-contract - */ -export type SmartContractTransaction = AbstractTransaction & SmartContractTransactionMetadata; -/** - * Describes representation of a Type 2 Stacks 2.0 transaction: Contract Call - */ -export type ContractCallTransaction = AbstractTransaction & ContractCallTransactionMetadata; -/** - * Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock - */ -export type PoisonMicroblockTransaction = AbstractTransaction & PoisonMicroblockTransactionMetadata; -/** - * Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock - */ -export type CoinbaseTransaction = AbstractTransaction & CoinbaseTransactionMetadata; -/** - * Describes representation of a Type 7 Stacks transaction: Tenure Change - */ -export type TenureChangeTransaction = AbstractTransaction & TenureChangeTransactionMetadata; -/** - * Describes all transaction types on Stacks 2.0 blockchain - */ -export type MempoolTransaction = - | MempoolTokenTransferTransaction - | MempoolSmartContractTransaction - | MempoolContractCallTransaction - | MempoolPoisonMicroblockTransaction - | MempoolCoinbaseTransaction - | MempoolTenureChangeTransaction; -/** - * Describes representation of a Type-0 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-0-transferring-an-asset - */ -export type MempoolTokenTransferTransaction = AbstractMempoolTransaction & TokenTransferTransactionMetadata; -/** - * Abstract transaction. This schema makes up all properties common between all Stacks 2.0 transaction types - */ -export type AbstractMempoolTransaction = BaseTransaction & { - tx_status: MempoolTransactionStatus; - /** - * A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node. - */ - receipt_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node. - */ - receipt_time_iso: string; -}; -/** - * Status of the transaction - */ -export type MempoolTransactionStatus = - | "pending" - | "dropped_replace_by_fee" - | "dropped_replace_across_fork" - | "dropped_too_expensive" - | "dropped_stale_garbage_collect" - | "dropped_problematic"; -/** - * Describes representation of a Type-1 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-1-instantiating-a-smart-contract - */ -export type MempoolSmartContractTransaction = AbstractMempoolTransaction & SmartContractTransactionMetadata; -/** - * Describes representation of a Type 2 Stacks 2.0 transaction: Contract Call - */ -export type MempoolContractCallTransaction = AbstractMempoolTransaction & ContractCallTransactionMetadata; -/** - * Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock - */ -export type MempoolPoisonMicroblockTransaction = AbstractMempoolTransaction & PoisonMicroblockTransactionMetadata; -/** - * Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock - */ -export type MempoolCoinbaseTransaction = AbstractMempoolTransaction & CoinbaseTransactionMetadata; -/** - * Describes representation of a Type 7 Stacks transaction: Tenure Change - */ -export type MempoolTenureChangeTransaction = AbstractMempoolTransaction & TenureChangeTransactionMetadata; -/** - * Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. - */ -export type BnsFetchFileZoneResponse = - | { - zonefile?: string; - } - | { - error?: string; - }; -/** - * Fetch a list of all names known to the node. - */ -export type BnsGetAllNamesResponse = string[]; -/** - * Fetch a list of all subdomains known to the node. - */ -export type BnsGetAllSubdomainsResponse = string[]; -/** - * Fetches the historical zonefile specified by the username and zone hash. - */ -export type BnsFetchHistoricalZoneFileResponse = - | { - zonefile?: string; - } - | { - error?: string; - }; -/** - * Fetches the list of subdomain operations processed by a given transaction. The returned array includes subdomain operations that have not yet been accepted as part of any subdomain’s history (checkable via the accepted field). If the given transaction ID does not correspond to a Stacks transaction that introduced new subdomain operations, and empty array will be returned. - */ -export type BnsGetSubdomainAtTx = { - accepted?: number; - block_height?: number; - domain?: string; - fully_qualified_subdomain?: string; - missing?: string; - owner?: string; - parent_zonefile_hash?: string; - parent_zonefile_index?: number; - resolver?: string; - sequence?: number; - signature?: string; - txid?: string; - zonefile_hash?: string; - zonefile_offset?: number; -}[]; -/** - * Fetch a list of names from the namespace. - */ -export type BnsGetAllNamespacesNamesResponse = string[]; -/** - * Fetch a list of subdomains in a name. - */ -export type GetAllSubdomainsInName = string[]; -/** - * GET fee estimates - */ -export type CoreNodeFeeResponse = string; -/** - * GET request that returns network target block times - */ -export type GetStxCirculatingSupplyPlainResponse = string; -/** - * GET request that returns network target block times - */ -export type GetStxTotalSupplyPlainResponse = string; -/** - * When fetching data by BlockIdentifier, it may be possible to only specify the index or hash. If neither property is specified, it is assumed that the client is making a request at the current block. - */ -export type RosettaPartialBlockIdentifier = - | RosettaBlockIdentifierHash - | RosettaBlockIdentifierHeight - | { - [k: string]: unknown | undefined; - }; -/** - * The block_identifier uniquely identifies a block in a particular network. - */ -export type RosettaBlockIdentifier = RosettaBlockIdentifierHash & RosettaBlockIdentifierHeight; -/** - * SignatureType is the type of a cryptographic signature. - */ -export type SignatureType = "ecdsa" | "ecdsa_recovery" | "ed25519" | "schnorr_1" | "schnorr_poseidon"; -/** - * Search success result - */ -export type SearchSuccessResult = - | AddressSearchResult - | BlockSearchResult - | ContractSearchResult - | MempoolTxSearchResult - | TxSearchResult; -/** - * complete search result for terms - */ -export type SearchResult = SearchErrorResult | SearchSuccessResult; -/** - * Describes an event from the history of a Non-Fungible Token - */ -export type NonFungibleTokenHistoryEvent = - | NonFungibleTokenHistoryEventWithTxId - | NonFungibleTokenHistoryEventWithTxMetadata; -/** - * Describes the ownership of a Non-Fungible Token - */ -export type NonFungibleTokenHolding = NonFungibleTokenHoldingWithTxId | NonFungibleTokenHoldingWithTxMetadata; -/** - * Describes the minting of a Non-Fungible Token - */ -export type NonFungibleTokenMint = NonFungibleTokenMintWithTxId | NonFungibleTokenMintWithTxMetadata; -export type PostConditionPrincipalType = "principal_origin" | "principal_standard" | "principal_contract"; -export type PostConditionType = "stx" | "non_fungible" | "fungible"; -/** - * Events types - */ -export type TransactionEventType = - | "smart_contract_log" - | "stx_lock" - | "stx_asset" - | "fungible_token_asset" - | "non_fungible_token_asset"; -export type TransactionMetadata = - | TokenTransferTransactionMetadata - | SmartContractTransactionMetadata - | ContractCallTransactionMetadata - | PoisonMicroblockTransactionMetadata - | CoinbaseTransactionMetadata - | TenureChangeTransactionMetadata; -/** - * String literal of all Stacks 2.0 transaction types - */ -export type TransactionType = - | "token_transfer" - | "smart_contract" - | "contract_call" - | "poison_microblock" - | "coinbase" - | "tenure_change"; -export type RpcAddressBalanceNotificationParams = { - address: string; -} & AddressStxBalanceResponse; -export type RpcAddressTxNotificationParams = { - address: string; - tx_id: string; - tx_type: TransactionType; - tx_status: TransactionStatus; -} & AddressTransactionWithTransfers; -export type RpcSubscriptionType = - | "tx_update" - | "address_tx_update" - | "address_balance_update" - | "block" - | "microblock" - | "mempool" - | "nft_event" - | "nft_asset_event" - | "nft_collection_event"; - -/** - * GET request that returns address assets - */ -export interface AddressAssetsListResponse { - limit: number; - offset: number; - total: number; - results: TransactionEvent[]; -} -export interface AbstractTransactionEvent { - event_index: number; -} -export interface TransactionEventAsset { - asset_event_type?: TransactionEventAssetType; - asset_id?: string; - sender?: string; - recipient?: string; - amount?: string; - value?: string; - memo?: string; -} -/** - * GET request that returns address balances - */ -export interface AddressBalanceResponse { - stx: StxBalance; - fungible_tokens: { - [k: string]: FtBalance | undefined; - }; - non_fungible_tokens: { - [k: string]: NftBalance | undefined; - }; - token_offering_locked?: AddressTokenOfferingLocked; -} -export interface StxBalance { - balance: string; - total_sent: string; - total_received: string; - total_fees_sent: string; - total_miner_rewards_received: string; - /** - * The transaction where the lock event occurred. Empty if no tokens are locked. - */ - lock_tx_id: string; - /** - * The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked. - */ - locked: string; - /** - * The STX chain block height of when the lock event occurred. Zero if no tokens are locked. - */ - lock_height: number; - /** - * The burnchain block height of when the lock event occurred. Zero if no tokens are locked. - */ - burnchain_lock_height: number; - /** - * The burnchain block height of when the tokens unlock. Zero if no tokens are locked. - */ - burnchain_unlock_height: number; -} -export interface FtBalance { - balance: string; - total_sent: string; - total_received: string; -} -export interface NftBalance { - count: string; - total_sent: string; - total_received: string; -} -/** - * Token Offering Locked - */ -export interface AddressTokenOfferingLocked { - /** - * Micro-STX amount still locked at current block height. - */ - total_locked: string; - /** - * Micro-STX amount unlocked at current block height. - */ - total_unlocked: string; - unlock_schedule: AddressUnlockSchedule[]; -} -/** - * Unlock schedule amount and block height - */ -export interface AddressUnlockSchedule { - /** - * Micro-STX amount locked at this block height. - */ - amount: string; - block_height: number; -} -/** - * GET request that returns a list of inbound STX transfers with a memo - */ -export interface AddressStxInboundListResponse { - limit: number; - offset: number; - total: number; - results: InboundStxTransfer[]; -} -/** - * A inbound STX transfer with a memo - */ -export interface InboundStxTransfer { - /** - * Principal that sent this transfer - */ - sender: string; - /** - * Transfer amount in micro-STX as integer string - */ - amount: string; - /** - * Hex encoded memo bytes associated with the transfer - */ - memo: string; - /** - * Block height at which this transfer occurred - */ - block_height: number; - /** - * The transaction ID in which this transfer occurred - */ - tx_id: string; - /** - * Indicates if the transfer is from a stx-transfer transaction or a contract-call transaction - */ - transfer_type: "bulk-send" | "stx-transfer" | "stx-transfer-memo"; - /** - * Index of the transaction within a block - */ - tx_index: number; -} -/** - * GET Address Transaction Events - */ -export interface AddressTransactionEventListResponse { - limit: number; - offset: number; - total: number; - results: AddressTransactionEvent[]; -} -/** - * GET request that returns account transactions - */ -export interface AddressTransactionsWithTransfersListResponse { - limit: number; - offset: number; - total: number; - results: AddressTransactionWithTransfers[]; -} -/** - * Transaction with STX transfers for a given address - */ -export interface AddressTransactionWithTransfers { - tx: Transaction; - /** - * Total sent from the given address, including the tx fee, in micro-STX as an integer string. - */ - stx_sent: string; - /** - * Total received by the given address in micro-STX as an integer string. - */ - stx_received: string; - stx_transfers: { - /** - * Amount transferred in micro-STX as an integer string. - */ - amount: string; - /** - * Principal that sent STX. This is unspecified if the STX were minted. - */ - sender?: string; - /** - * Principal that received STX. This is unspecified if the STX were burned. - */ - recipient?: string; - }[]; - ft_transfers?: { - /** - * Fungible Token asset identifier. - */ - asset_identifier: string; - /** - * Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals. - */ - amount: string; - /** - * Principal that sent the asset. - */ - sender?: string; - /** - * Principal that received the asset. - */ - recipient?: string; - }[]; - nft_transfers?: { - /** - * Non Fungible Token asset identifier. - */ - asset_identifier: string; - /** - * Non Fungible Token asset value. - */ - value: { - hex: string; - repr: string; - }; - /** - * Principal that sent the asset. - */ - sender?: string; - /** - * Principal that received the asset. - */ - recipient?: string; - }[]; -} -/** - * Transaction properties that are available from a raw serialized transactions. These are available for transactions in the mempool as well as mined transactions. - */ -export interface BaseTransaction { - /** - * Transaction ID - */ - tx_id: string; - /** - * Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on. - */ - nonce: number; - /** - * Transaction fee as Integer string (64-bit unsigned integer). - */ - fee_rate: string; - /** - * Address of the transaction initiator - */ - sender_address: string; - sponsor_nonce?: number; - /** - * Denotes whether the originating account is the same as the paying account - */ - sponsored: boolean; - sponsor_address?: string; - post_condition_mode: PostConditionMode; - post_conditions: PostCondition[]; - anchor_mode: TransactionAnchorModeType; -} -/** - * Metadata associated with token-transfer type transactions - */ -export interface TokenTransferTransactionMetadata { - tx_type: "token_transfer"; - token_transfer: { - recipient_address: string; - /** - * Transfer amount as Integer string (64-bit unsigned integer) - */ - amount: string; - /** - * Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string) - */ - memo: string; - }; -} -/** - * Metadata associated with a contract-deploy type transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-1-instantiating-a-smart-contract - */ -export interface SmartContractTransactionMetadata { - tx_type: "smart_contract"; - smart_contract: { - /** - * The Clarity version of the contract, only specified for versioned contract transactions, otherwise null - */ - clarity_version?: number; - /** - * Contract identifier formatted as `.` - */ - contract_id: string; - /** - * Clarity code of the smart contract being deployed - */ - source_code: string; - }; -} -/** - * Metadata associated with a contract-call type transaction - */ -export interface ContractCallTransactionMetadata { - tx_type: "contract_call"; - contract_call: { - /** - * Contract identifier formatted as `.` - */ - contract_id: string; - /** - * Name of the Clarity function to be invoked - */ - function_name: string; - /** - * Function definition, including function name and type as well as parameter names and types - */ - function_signature: string; - /** - * List of arguments used to invoke the function - */ - function_args?: { - hex: string; - repr: string; - name: string; - type: string; - }[]; - }; -} -/** - * Metadata associated with a poison-microblock type transaction - */ -export interface PoisonMicroblockTransactionMetadata { - tx_type: "poison_microblock"; - poison_microblock: { - /** - * Hex encoded microblock header - */ - microblock_header_1: string; - /** - * Hex encoded microblock header - */ - microblock_header_2: string; - }; -} -/** - * Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock - */ -export interface CoinbaseTransactionMetadata { - tx_type: "coinbase"; - coinbase_payload: { - /** - * Hex encoded 32-byte scratch space for block leader's use - */ - data: string; - /** - * A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null. - */ - alt_recipient?: string; - /** - * Hex encoded 80-byte VRF proof - */ - vrf_proof?: string; - }; -} -/** - * Describes representation of a Type 7 Stacks transaction: Tenure Change - */ -export interface TenureChangeTransactionMetadata { - tx_type: "tenure_change"; - tenure_change_payload?: { - /** - * Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen. - */ - tenure_consensus_hash: string; - /** - * Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit. - */ - prev_tenure_consensus_hash: string; - /** - * Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition. - */ - burn_view_consensus_hash: string; - /** - * (Hex string) Stacks Block hash - */ - previous_tenure_end: string; - /** - * The number of blocks produced in the previous tenure. - */ - previous_tenure_blocks: number; - /** - * Cause of change in mining tenure. Depending on cause, tenure can be ended or extended. - */ - cause: "block_found" | "extended"; - /** - * (Hex string) The ECDSA public key hash of the current tenure. - */ - pubkey_hash: string; - }; -} -/** - * GET request that returns account transactions - */ -export interface AddressTransactionsListResponse { - limit: number; - offset: number; - total: number; - results: (MempoolTransaction | Transaction)[]; -} -/** - * GET Address Transactions - */ -export interface AddressTransactionsV2ListResponse { - limit: number; - offset: number; - total: number; - results: AddressTransaction[]; -} -/** - * Address transaction with STX, FT and NFT transfer summaries - */ -export interface AddressTransaction { - tx: Transaction; - /** - * Total sent from the given address, including the tx fee, in micro-STX as an integer string. - */ - stx_sent: string; - /** - * Total received by the given address in micro-STX as an integer string. - */ - stx_received: string; - events?: { - stx: { - transfer: number; - mint: number; - burn: number; - }; - ft: { - transfer: number; - mint: number; - burn: number; - }; - nft: { - transfer: number; - mint: number; - burn: number; - }; - [k: string]: unknown | undefined; - }; -} -/** - * Request to fetch average block times (in seconds) - */ -export interface AverageBlockTimesResponse { - /** - * Average block times over the last hour (in seconds) - */ - last_1h: number; - /** - * Average block times over the last 24 hours (in seconds) - */ - last_24h: number; - /** - * Average block times over the last 7 days (in seconds) - */ - last_7d: number; - /** - * Average block times over the last 30 days (in seconds) - */ - last_30d: number; -} -/** - * GET request that returns blocks - */ -export interface BlockListResponse { - /** - * The number of blocks to return - */ - limit: number; - /** - * The number to blocks to skip (starting at `0`) - */ - offset: number; - /** - * The number of blocks available - */ - total: number; - results: Block[]; -} -/** - * A block - */ -export interface Block { - /** - * Set to `true` if block corresponds to the canonical chain tip - */ - canonical: boolean; - /** - * Height of the block - */ - height: number; - /** - * Hash representing the block - */ - hash: string; - /** - * Unix timestamp (in seconds) indicating when this block was mined. - */ - block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. - */ - block_time_iso: string; - /** - * The only hash that can uniquely identify an anchored block or an unconfirmed state trie - */ - index_block_hash: string; - /** - * Hash of the parent block - */ - parent_block_hash: string; - /** - * Unix timestamp (in seconds) indicating when this block was mined. - */ - burn_block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. - */ - burn_block_time_iso: string; - /** - * Hash of the anchor chain block - */ - burn_block_hash: string; - /** - * Height of the anchor chain block - */ - burn_block_height: number; - /** - * Anchor chain transaction ID - */ - miner_txid: string; - /** - * The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. - */ - parent_microblock_hash: string; - /** - * The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1. - */ - parent_microblock_sequence: number; - /** - * List of transactions included in the block - */ - txs: string[]; - /** - * List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list. - */ - microblocks_accepted: string[]; - /** - * List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list. - */ - microblocks_streamed: string[]; - /** - * Execution cost read count. - */ - execution_cost_read_count: number; - /** - * Execution cost read length. - */ - execution_cost_read_length: number; - /** - * Execution cost runtime. - */ - execution_cost_runtime: number; - /** - * Execution cost write count. - */ - execution_cost_write_count: number; - /** - * Execution cost write length. - */ - execution_cost_write_length: number; - /** - * List of txs counts in each accepted microblock - */ - microblock_tx_count: { - [k: string]: number | undefined; - }; -} -/** - * GET request that returns burn blocks - */ -export interface BurnBlockListResponse { - /** - * The number of burn blocks to return - */ - limit: number; - /** - * The number to burn blocks to skip (starting at `0`) - */ - offset: number; - /** - * The number of burn blocks available (regardless of filter parameters) - */ - total: number; - results: BurnBlock[]; -} -/** - * A burn block - */ -export interface BurnBlock { - /** - * Unix timestamp (in seconds) indicating when this block was mined. - */ - burn_block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. - */ - burn_block_time_iso: string; - /** - * Hash of the anchor chain block - */ - burn_block_hash: string; - /** - * Height of the anchor chain block - */ - burn_block_height: number; - /** - * Hashes of the Stacks blocks included in the burn block - */ - stacks_blocks: string[]; - /** - * Average time between blocks in seconds. Returns 0 if there is only one block in the burn block. - */ - avg_block_time: number; - /** - * Total number of transactions in the Stacks blocks associated with this burn block - */ - total_tx_count: number; -} -/** - * GET request that returns blocks - */ -export interface NakamotoBlockListResponse { - /** - * The number of blocks to return - */ - limit: number; - /** - * The number to blocks to skip (starting at `0`) - */ - offset: number; - /** - * The number of blocks available - */ - total: number; - results: NakamotoBlock[]; -} -/** - * A block - */ -export interface NakamotoBlock { - /** - * Set to `true` if block corresponds to the canonical chain tip - */ - canonical: boolean; - /** - * Height of the block - */ - height: number; - /** - * Hash representing the block - */ - hash: string; - /** - * Unix timestamp (in seconds) indicating when this block was mined. - */ - block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. - */ - block_time_iso: string; - /** - * The only hash that can uniquely identify an anchored block or an unconfirmed state trie - */ - index_block_hash: string; - /** - * Hash of the parent block - */ - parent_block_hash: string; - /** - * Index block hash of the parent block - */ - parent_index_block_hash: string; - /** - * Unix timestamp (in seconds) indicating when this block was mined. - */ - burn_block_time: number; - /** - * An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. - */ - burn_block_time_iso: string; - /** - * Hash of the anchor chain block - */ - burn_block_hash: string; - /** - * Height of the anchor chain block - */ - burn_block_height: number; - /** - * Anchor chain transaction ID - */ - miner_txid: string; - /** - * Number of transactions included in the block - */ - tx_count: number; - /** - * Execution cost read count. - */ - execution_cost_read_count: number; - /** - * Execution cost read length. - */ - execution_cost_read_length: number; - /** - * Execution cost runtime. - */ - execution_cost_runtime: number; - /** - * Execution cost write count. - */ - execution_cost_write_count: number; - /** - * Execution cost write length. - */ - execution_cost_write_length: number; -} -/** - * Error - */ -export interface BnsError { - error?: string; -} -/** - * Get name details - */ -export interface BnsGetNameInfoResponse { - address: string; - blockchain: string; - expire_block?: number; - grace_period?: number; - last_txid: string; - resolver?: string; - status: string; - zonefile: string; - zonefile_hash: string; -} -/** - * Fetch price for name. - */ -export interface BnsGetNamePriceResponse { - units: string; - amount: string; -} -/** - * Retrieves a list of names owned by the address provided. - */ -export interface BnsNamesOwnByAddressResponse { - names: string[]; -} -/** - * Fetch a list of all namespaces known to the node. - */ -export interface BnsGetAllNamespacesResponse { - namespaces: string[]; -} -/** - * Fetch price for namespace. - */ -export interface BnsGetNamespacePriceResponse { - units: string; - amount: string; -} -/** - * GET request that returns reward slot holders - */ -export interface BurnchainRewardSlotHolderListResponse { - /** - * The number of items to return - */ - limit: number; - /** - * The number of items to skip (starting at `0`) - */ - offset: number; - /** - * Total number of available items - */ - total: number; - results: BurnchainRewardSlotHolder[]; -} -/** - * Reward slot holder on the burnchain - */ -export interface BurnchainRewardSlotHolder { - /** - * Set to `true` if block corresponds to the canonical burchchain tip - */ - canonical: boolean; - /** - * The hash representing the burnchain block - */ - burn_block_hash: string; - /** - * Height of the burnchain block - */ - burn_block_height: number; - /** - * The recipient address that validly received PoX commitments, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) - */ - address: string; - /** - * The index position of the reward entry, useful for ordering when there's more than one slot per burnchain block - */ - slot_index: number; -} -/** - * GET request that returns blocks - */ -export interface BurnchainRewardListResponse { - /** - * The number of burnchain rewards to return - */ - limit: number; - /** - * The number to burnchain rewards to skip (starting at `0`) - */ - offset: number; - results: BurnchainReward[]; -} -/** - * Reward payment made on the burnchain - */ -export interface BurnchainReward { - /** - * Set to `true` if block corresponds to the canonical burchchain tip - */ - canonical: boolean; - /** - * The hash representing the burnchain block - */ - burn_block_hash: string; - /** - * Height of the burnchain block - */ - burn_block_height: number; - /** - * The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin) - */ - burn_amount: string; - /** - * The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) - */ - reward_recipient: string; - /** - * The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin) - */ - reward_amount: string; - /** - * The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block - */ - reward_index: number; -} -/** - * GET request to get contract source - */ -export interface ReadOnlyFunctionSuccessResponse { - okay: boolean; - result?: string; - cause?: string; -} -/** - * GET list of contracts - */ -export interface ContractListResponse { - /** - * The number of contracts to return - */ - limit: number; - /** - * The number to contracts to skip (starting at `0`) - */ - offset: number; - results: SmartContract[]; -} -/** - * A Smart Contract Detail - */ -export interface SmartContract { - tx_id: string; - canonical: boolean; - contract_id: string; - block_height: number; - source_code: string; - abi: string; -} -/** - * GET request for account data - */ -export interface AccountDataResponse { - balance: string; - locked: string; - unlock_height: number; - nonce: number; - balance_proof: string; - nonce_proof: string; -} -/** - * Response of get data map entry request - */ -export interface MapEntryResponse { - /** - * Hex-encoded string of clarity value. It is always an optional tuple. - */ - data: string; - /** - * Hex-encoded string of the MARF proof for the data - */ - proof?: string; -} -/** - * GET request to get contract interface - */ -export interface ContractInterfaceResponse { - /** - * List of defined methods - */ - functions: { - [k: string]: unknown | undefined; - }[]; - /** - * List of defined variables - */ - variables: { - [k: string]: unknown | undefined; - }[]; - /** - * List of defined data-maps - */ - maps: { - [k: string]: unknown | undefined; - }[]; - /** - * List of fungible tokens in the contract - */ - fungible_tokens: { - [k: string]: unknown | undefined; - }[]; - /** - * List of non-fungible tokens in the contract - */ - non_fungible_tokens: { - [k: string]: unknown | undefined; - }[]; -} -/** - * GET request to get contract source - */ -export interface ContractSourceResponse { - source: string; - publish_height: number; - proof: string; -} -/** - * GET request that core node information - */ -export interface CoreNodeInfoResponse { - /** - * identifies the version number for the networking communication, this should not change while a node is running, and will only change if there's an upgrade - */ - peer_version: number; - /** - * is a hash used to identify the burnchain view for a node. it incorporates bitcoin chain information and PoX information. nodes that disagree on this value will appear to each other as forks. this value will change after every block - */ - pox_consensus: string; - /** - * latest bitcoin chain height - */ - burn_block_height: number; - /** - * same as burn_consensus, but evaluated at stable_burn_block_height - */ - stable_pox_consensus: string; - /** - * leftover from stacks 1.0, basically always burn_block_height - 1 - */ - stable_burn_block_height: number; - /** - * is a version descriptor - */ - server_version: string; - /** - * is similar to peer_version and will be used to differentiate between different testnets. this value will be different between mainnet and testnet. once launched, this value will not change - */ - network_id: number; - /** - * same as network_id, but for bitcoin - */ - parent_network_id: number; - /** - * the latest Stacks chain height. Stacks forks can occur independent of the Bitcoin chain, that height doesn't increase 1-to-1 with the Bitcoin height - */ - stacks_tip_height: number; - /** - * the best known block hash for the Stack chain (not including any pending microblocks) - */ - stacks_tip: string; - /** - * the burn chain (i.e., bitcoin) consensus hash at the time that stacks_tip was mined - */ - stacks_tip_consensus_hash: string; - /** - * the latest microblock hash if any microblocks were processed. if no microblock has been processed for the current block, a 000.., hex array is returned - */ - unanchored_tip: string; - /** - * the block height at which the testnet network will be reset. not applicable for mainnet - */ - exit_at_block_height: number; -} -/** - * Get Proof of Transfer (PoX) information - */ -export interface CoreNodePoxResponse { - contract_id: string; - first_burnchain_block_height: number; - min_amount_ustx: number; - registration_window_length: number; - rejection_fraction: number; - reward_cycle_id: number; - reward_cycle_length: number; - rejection_votes_left_required: number; - total_liquid_supply_ustx: number; -} -/** - * POST response for estimated fee - */ -export interface TransactionFeeEstimateResponse { - estimated_cost_scalar: number; - cost_scalar_change_by_byte?: number; - estimated_cost: { - read_count: number; - read_length: number; - runtime: number; - write_count: number; - write_length: number; - }; - estimations?: { - fee_rate?: number; - fee?: number; - [k: string]: unknown | undefined; - }[]; -} -/** - * POST request for estimated fee - */ -export interface TransactionFeeEstimateRequest { - transaction_payload: string; - estimated_len?: number; -} -/** - * POST request that initiates a transfer of tokens to a specified testnet address - */ -export interface RunFaucetResponse { - /** - * Indicates if the faucet call was successful - */ - success: boolean; - /** - * The transaction ID for the faucet call - */ - txId?: string; - /** - * Raw transaction in hex string representation - */ - txRaw?: string; -} -/** - * Request to fetch fee for a transaction - */ -export interface FeeRateRequest { - /** - * A serialized transaction - */ - transaction: string; -} -/** - * Get fee rate information. - */ -export interface FeeRate { - fee_rate: number; -} -/** - * GET request that target block time for a given network - */ -export interface NetworkBlockTimeResponse { - target_block_time: number; -} -/** - * GET request that returns network target block times - */ -export interface NetworkBlockTimesResponse { - mainnet: TargetBlockTime; - testnet: TargetBlockTime; -} -export interface TargetBlockTime { - target_block_time: number; -} -/** - * GET blockchain API status - */ -export interface ServerStatusResponse { - /** - * the server version that is currently running - */ - server_version?: string; - /** - * the current server status - */ - status: string; - pox_v1_unlock_height?: number; - pox_v2_unlock_height?: number; - pox_v3_unlock_height?: number; - chain_tip?: ChainTip; -} -/** - * Current chain tip information - */ -export interface ChainTip { - /** - * the current block height - */ - block_height: number; - /** - * the current block hash - */ - block_hash: string; - /** - * the current index block hash - */ - index_block_hash: string; - /** - * the current microblock hash - */ - microblock_hash?: string; - /** - * the current microblock sequence number - */ - microblock_sequence?: number; - /** - * the current burn chain block height - */ - burn_block_height: number; -} -/** - * GET request that returns network target block times - */ -export interface GetStxSupplyLegacyFormatResponse { - /** - * String quoted decimal number of the percentage of STX that have unlocked - */ - unlockedPercent: string; - /** - * String quoted decimal number of the total possible number of STX - */ - totalStacks: string; - /** - * Same as `totalStacks` but formatted with comma thousands separators - */ - totalStacksFormatted: string; - /** - * String quoted decimal number of the STX that have been mined or unlocked - */ - unlockedSupply: string; - /** - * Same as `unlockedSupply` but formatted with comma thousands separators - */ - unlockedSupplyFormatted: string; - /** - * The block height at which this information was queried - */ - blockHeight: string; -} -/** - * GET request that returns network target block times - */ -export interface GetStxSupplyResponse { - /** - * String quoted decimal number of the percentage of STX that have unlocked - */ - unlocked_percent: string; - /** - * String quoted decimal number of the total possible number of STX - */ - total_stx: string; - /** - * String quoted decimal number of the STX that have been mined or unlocked - */ - unlocked_stx: string; - /** - * The block height at which this information was queried - */ - block_height: number; -} -/** - * GET request that returns fee priorities from mempool transactions - */ -export interface MempoolFeePriorities { - all: { - no_priority: number; - low_priority: number; - medium_priority: number; - high_priority: number; - }; - token_transfer?: { - no_priority: number; - low_priority: number; - medium_priority: number; - high_priority: number; - }; - smart_contract?: { - no_priority: number; - low_priority: number; - medium_priority: number; - high_priority: number; - }; - contract_call?: { - no_priority: number; - low_priority: number; - medium_priority: number; - high_priority: number; - }; -} -/** - * GET request that returns microblocks - */ -export interface MicroblockListResponse { - /** - * The number of microblocks to return - */ - limit: number; - /** - * The number to microblocks to skip (starting at `0`) - */ - offset: number; - /** - * The number of microblocks available - */ - total: number; - results: Microblock[]; -} -/** - * A microblock - */ -export interface Microblock { - /** - * Set to `true` if the microblock corresponds to the canonical chain tip. - */ - canonical: boolean; - /** - * Set to `true` if the microblock was not orphaned in a following anchor block. Defaults to `true` if the following anchor block has not yet been created. - */ - microblock_canonical: boolean; - /** - * The SHA512/256 hash of this microblock. - */ - microblock_hash: string; - /** - * A hint to describe how to order a set of microblocks. Starts at 0. - */ - microblock_sequence: number; - /** - * The SHA512/256 hash of the previous signed microblock in this stream. - */ - microblock_parent_hash: string; - /** - * The anchor block height that confirmed this microblock. - */ - block_height: number; - /** - * The height of the anchor block that preceded this microblock. - */ - parent_block_height: number; - /** - * The hash of the anchor block that preceded this microblock. - */ - parent_block_hash: string; - /** - * The hash of the Bitcoin block that preceded this microblock. - */ - parent_burn_block_hash: string; - /** - * The block timestamp of the Bitcoin block that preceded this microblock. - */ - parent_burn_block_time: number; - /** - * The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the bitcoin block that preceded this microblock. - */ - parent_burn_block_time_iso: string; - /** - * The height of the Bitcoin block that preceded this microblock. - */ - parent_burn_block_height: number; - /** - * The hash of the anchor block that confirmed this microblock. This wil be empty for unanchored microblocks - */ - block_hash: string; - /** - * List of transactions included in the microblock - */ - txs: string[]; -} -/** - * GET request that returns unanchored transactions - */ -export interface UnanchoredTransactionListResponse { - /** - * The number of unanchored transactions available - */ - total: number; - results: Transaction[]; -} -/** - * An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. If the block_identifier is populated, a historical balance query should be performed. - */ -export interface RosettaAccountBalanceRequest { - network_identifier: NetworkIdentifier; - account_identifier: RosettaAccount; - block_identifier?: RosettaPartialBlockIdentifier; -} -/** - * The network_identifier specifies which network a particular object is associated with. - */ -export interface NetworkIdentifier { - /** - * Blockchain name - */ - blockchain: string; - /** - * If a blockchain has a specific chain-id or network identifier, it should go in this field. It is up to the client to determine which network-specific identifier is mainnet or testnet. - */ - network: string; - /** - * In blockchains with sharded state, the SubNetworkIdentifier is required to query some object on a specific shard. This identifier is optional for all non-sharded blockchains. - */ - sub_network_identifier?: { - /** - * Network name - */ - network: string; - /** - * Meta data from subnetwork identifier - */ - metadata?: { - /** - * producer - */ - producer: string; - [k: string]: unknown | undefined; - }; - }; -} -/** - * The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated). - */ -export interface RosettaAccount { - /** - * The address may be a cryptographic public key (or some encoding of it) or a provided username. - */ - address: string; - sub_account?: RosettaSubAccount; - /** - * Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata. - */ - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * An account may have state specific to a contract address (ERC-20 token) and/or a stake (delegated balance). The sub_account_identifier should specify which state (if applicable) an account instantiation refers to. - */ -export interface RosettaSubAccount { - /** - * The address may be a cryptographic public key (or some encoding of it) or a provided username. - */ - address: string; - /** - * If the SubAccount address is not sufficient to uniquely specify a SubAccount, any other identifying information can be stored here. It is important to note that two SubAccounts with identical addresses but differing metadata will not be considered equal by clients. - */ - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * This is also known as the block hash. - */ -export interface RosettaBlockIdentifierHash { - /** - * This is also known as the block hash. - */ - hash: string; -} -/** - * This is also known as the block height. - */ -export interface RosettaBlockIdentifierHeight { - /** - * This is also known as the block height. - */ - index: number; -} -/** - * An AccountBalanceResponse is returned on the /account/balance endpoint. If an account has a balance for each AccountIdentifier describing it (ex: an ERC-20 token balance on a few smart contracts), an account balance request must be made with each AccountIdentifier. - */ -export interface RosettaAccountBalanceResponse { - block_identifier: RosettaBlockIdentifier; - /** - * A single account balance may have multiple currencies - */ - balances: RosettaAmount[]; - /** - * If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs. - */ - coins?: RosettaCoin[]; - /** - * Account-based blockchains that utilize a nonce or sequence number should include that number in the metadata. This number could be unique to the identifier or global across the account address. - */ - metadata?: { - sequence_number: number; - [k: string]: unknown | undefined; - }; -} -/** - * Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency. - */ -export interface RosettaAmount { - /** - * Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000. - */ - value: string; - currency: RosettaCurrency; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * Currency is composed of a canonical Symbol and Decimals. This Decimals value is used to convert an Amount.Value from atomic units (Satoshis) to standard units (Bitcoins). - */ -export interface RosettaCurrency { - /** - * Canonical symbol associated with a currency. - */ - symbol: string; - /** - * Number of decimal places in the standard unit representation of the amount. For example, BTC has 8 decimals. Note that it is not possible to represent the value of some currency in atomic units that is not base 10. - */ - decimals: number; - /** - * Any additional information related to the currency itself. For example, it would be useful to populate this object with the contract address of an ERC-20 token. - */ - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs. - */ -export interface RosettaCoin { - /** - * CoinIdentifier uniquely identifies a Coin. - */ - coin_identifier: { - /** - * Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index. - */ - identifier: string; - }; - amount: RosettaAmount; -} -/** - * A BlockRequest is utilized to make a block request on the /block endpoint. - */ -export interface RosettaBlockRequest { - network_identifier: NetworkIdentifier; - block_identifier: RosettaPartialBlockIdentifier; -} -/** - * A BlockResponse includes a fully-populated block or a partially-populated block with a list of other transactions to fetch (other_transactions). As a result of the consensus algorithm of some blockchains, blocks can be omitted (i.e. certain block indexes can be skipped). If a query for one of these omitted indexes is made, the response should not include a Block object. It is VERY important to note that blocks MUST still form a canonical, connected chain of blocks where each block has a unique index. In other words, the PartialBlockIdentifier of a block after an omitted block should reference the last non-omitted block. - */ -export interface RosettaBlockResponse { - block?: RosettaBlock; - /** - * Some blockchains may require additional transactions to be fetched that weren't returned in the block response (ex: block only returns transaction hashes). For blockchains with a lot of transactions in each block, this can be very useful as consumers can concurrently fetch all transactions returned. - */ - other_transactions?: OtherTransactionIdentifier[]; -} -/** - * Blocks contain an array of Transactions that occurred at a particular BlockIdentifier. A hard requirement for blocks returned by Rosetta implementations is that they MUST be inalterable: once a client has requested and received a block identified by a specific BlockIndentifier, all future calls for that same BlockIdentifier must return the same block contents. - */ -export interface RosettaBlock { - block_identifier: RosettaBlockIdentifier; - parent_block_identifier: RosettaParentBlockIdentifier; - /** - * The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second. - */ - timestamp: number; - /** - * All the transactions in the block - */ - transactions: RosettaTransaction[]; - /** - * meta data - */ - metadata: { - burn_block_height: number; - [k: string]: unknown | undefined; - }; -} -/** - * The block_identifier uniquely identifies a block in a particular network. - */ -export interface RosettaParentBlockIdentifier { - /** - * This is also known as the block height. - */ - index: number; - /** - * Block hash - */ - hash: string; -} -/** - * Transactions contain an array of Operations that are attributable to the same TransactionIdentifier. - */ -export interface RosettaTransaction { - transaction_identifier: TransactionIdentifier; - /** - * List of operations - */ - operations: RosettaOperation[]; - /** - * Transactions that are related to other transactions (like a cross-shard transaction) should include the tranaction_identifier of these transactions in the metadata. - */ - metadata?: { - /** - * STX token transfer memo. - */ - memo?: string; - /** - * The Size - */ - size?: number; - /** - * The locktime - */ - lockTime?: number; - [k: string]: unknown | undefined; - }; -} -/** - * The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool. - */ -export interface TransactionIdentifier { - /** - * Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier. - */ - hash: string; -} -/** - * Operations contain all balance-changing information within a transaction. They are always one-sided (only affect 1 AccountIdentifier) and can succeed or fail independently from a Transaction. - */ -export interface RosettaOperation { - operation_identifier: RosettaOperationIdentifier; - /** - * Restrict referenced related_operations to identifier indexes < the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree. - */ - related_operations?: RosettaRelatedOperation[]; - /** - * The network-specific type of the operation. Ensure that any type that can be returned here is also specified in the NetworkStatus. This can be very useful to downstream consumers that parse all block data. - */ - type: string; - /** - * The network-specific status of the operation. Status is not defined on the transaction object because blockchains with smart contracts may have transactions that partially apply. Blockchains with atomic transactions (all operations succeed or all operations fail) will have the same status for each operation. - */ - status?: string; - account?: RosettaAccount; - amount?: RosettaAmount; - coin_change?: RosettaCoinChange; - /** - * Operations Meta Data - */ - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * The operation_identifier uniquely identifies an operation within a transaction. - */ -export interface RosettaOperationIdentifier { - /** - * The operation index is used to ensure each operation has a unique identifier within a transaction. This index is only relative to the transaction and NOT GLOBAL. The operations in each transaction should start from index 0. To clarify, there may not be any notion of an operation index in the blockchain being described. - */ - index: number; - /** - * Some blockchains specify an operation index that is essential for client use. For example, Bitcoin uses a network_index to identify which UTXO was used in a transaction. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains). - */ - network_index?: number; -} -/** - * Restrict referenced related_operations to identifier indexes < the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree. - */ -export interface RosettaRelatedOperation { - /** - * Describes the index of related operation. - */ - index: number; - /** - * Some blockchains specify an operation index that is essential for client use. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains). - */ - network_index?: number; -} -/** - * CoinChange is used to represent a change in state of a some coin identified by a coin_identifier. This object is part of the Operation model and must be populated for UTXO-based blockchains. Coincidentally, this abstraction of UTXOs allows for supporting both account-based transfers and UTXO-based transfers on the same blockchain (when a transfer is account-based, don't populate this model). - */ -export interface RosettaCoinChange { - /** - * CoinIdentifier uniquely identifies a Coin. - */ - coin_identifier: { - /** - * Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index. - */ - identifier: string; - [k: string]: unknown | undefined; - }; - /** - * CoinActions are different state changes that a Coin can undergo. When a Coin is created, it is coin_created. When a Coin is spent, it is coin_spent. It is assumed that a single Coin cannot be created or spent more than once. - */ - coin_action: "coin_created" | "coin_spent"; -} -/** - * The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool. - */ -export interface OtherTransactionIdentifier { - /** - * Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier. - */ - hash: string; -} -/** - * A BlockTransactionRequest is used to fetch a Transaction included in a block that is not returned in a BlockResponse. - */ -export interface RosettaBlockTransactionRequest { - network_identifier: NetworkIdentifier; - block_identifier: RosettaPartialBlockIdentifier; - transaction_identifier: TransactionIdentifier; -} -/** - * A BlockTransactionResponse contains information about a block transaction. - */ -export interface RosettaBlockTransactionResponse { - transaction: RosettaTransaction; -} -/** - * RosettaConstructionCombineRequest is the input to the /construction/combine endpoint. It contains the unsigned transaction blob returned by /construction/payloads and all required signatures to create a network transaction. - */ -export interface RosettaConstructionCombineRequest { - network_identifier: NetworkIdentifier; - unsigned_transaction: string; - signatures: RosettaSignature[]; -} -/** - * Signature contains the payload that was signed, the public keys of the keypairs used to produce the signature, the signature (encoded in hex), and the SignatureType. PublicKey is often times not known during construction of the signing payloads but may be needed to combine signatures properly. - */ -export interface RosettaSignature { - signing_payload: SigningPayload; - public_key: RosettaPublicKey; - signature_type: SignatureType; - hex_bytes: string; -} -/** - * SigningPayload is signed by the client with the keypair associated with an address using the specified SignatureType. SignatureType can be optionally populated if there is a restriction on the signature scheme that can be used to sign the payload. - */ -export interface SigningPayload { - /** - * [DEPRECATED by account_identifier in v1.4.4] The network-specific address of the account that should sign the payload. - */ - address?: string; - account_identifier?: RosettaAccount; - hex_bytes: string; - /** - * SignatureType is the type of a cryptographic signature. - */ - signature_type?: "ecdsa" | "ecdsa_recovery" | "ed25519" | "schnorr_1" | "schnorr_poseidon"; -} -/** - * PublicKey contains a public key byte array for a particular CurveType encoded in hex. Note that there is no PrivateKey struct as this is NEVER the concern of an implementation. - */ -export interface RosettaPublicKey { - /** - * Hex-encoded public key bytes in the format specified by the CurveType. - */ - hex_bytes: string; - /** - * CurveType is the type of cryptographic curve associated with a PublicKey. - */ - curve_type: "secp256k1" | "edwards25519"; -} -/** - * RosettaConstructionCombineResponse is returned by /construction/combine. The network payload will be sent directly to the construction/submit endpoint. - */ -export interface RosettaConstructionCombineResponse { - /** - * Signed transaction bytes in hex - */ - signed_transaction: string; -} -/** - * Network is provided in the request because some blockchains have different address formats for different networks - */ -export interface RosettaConstructionDeriveRequest { - network_identifier: NetworkIdentifier; - public_key: RosettaPublicKey; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * ConstructionDeriveResponse is returned by the /construction/derive endpoint. - */ -export interface RosettaConstructionDeriveResponse { - /** - * [DEPRECATED by account_identifier in v1.4.4] Address in network-specific format. - */ - address?: string; - account_identifier?: RosettaAccountIdentifier; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated). - */ -export interface RosettaAccountIdentifier { - /** - * The address may be a cryptographic public key (or some encoding of it) or a provided username. - */ - address: string; - sub_account?: RosettaSubAccount; - /** - * Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata. - */ - metadata?: { - [k: string]: unknown | undefined; - }; - [k: string]: unknown | undefined; -} -/** - * TransactionHash returns the network-specific transaction hash for a signed transaction. - */ -export interface RosettaConstructionHashRequest { - network_identifier: NetworkIdentifier; - /** - * Signed transaction - */ - signed_transaction: string; -} -/** - * TransactionIdentifier contains the transaction_identifier of a transaction that was submitted to either /construction/hash or /construction/submit. - */ -export interface RosettaConstructionHashResponse { - transaction_identifier: TransactionIdentifier; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * A ConstructionMetadataRequest is utilized to get information required to construct a transaction. The Options object used to specify which metadata to return is left purposely unstructured to allow flexibility for implementers. Optionally, the request can also include an array of PublicKeys associated with the AccountIdentifiers returned in ConstructionPreprocessResponse. - */ -export interface RosettaConstructionMetadataRequest { - network_identifier: NetworkIdentifier; - options: RosettaOptions; - public_keys?: RosettaPublicKey[]; -} -/** - * The options that will be sent directly to /construction/metadata by the caller. - */ -export interface RosettaOptions { - /** - * sender's address - */ - sender_address?: string; - /** - * Type of operation e.g transfer - */ - type?: string; - /** - * This value indicates the state of the operations - */ - status?: string; - /** - * Recipient's address - */ - token_transfer_recipient_address?: string; - /** - * Amount to be transfered. - */ - amount?: string; - /** - * Currency symbol e.g STX - */ - symbol?: string; - /** - * Number of decimal places - */ - decimals?: number; - /** - * Maximum price a user is willing to pay. - */ - gas_limit?: number; - /** - * Cost necessary to perform a transaction on the network - */ - gas_price?: number; - /** - * A suggested fee multiplier to indicate that the suggested fee should be scaled. This may be used to set higher fees for urgent transactions or to pay lower fees when there is less urgency. - */ - suggested_fee_multiplier?: number; - /** - * Maximum fee user is willing to pay - */ - max_fee?: string; - /** - * Fee for this transaction - */ - fee?: string; - /** - * Transaction approximative size (used to calculate total fee). - */ - size?: number; - /** - * STX token transfer memo. - */ - memo?: string; - /** - * Number of cycles when stacking. - */ - number_of_cycles?: number; - /** - * Address of the contract to call. - */ - contract_address?: string; - /** - * Name of the contract to call. - */ - contract_name?: string; - /** - * Set the burnchain (BTC) block for stacking lock to start. - */ - burn_block_height?: number; - /** - * The reward cycle ID for stacking transaction. - */ - reward_cycle_id?: number; - /** - * Delegator address for when calling `delegate-stacking`. - */ - delegate_to?: string; - /** - * The reward address for stacking transaction. It should be a valid Bitcoin address - */ - pox_addr?: string; - /** - * The hex-encoded signer key (buff 33) for PoX. - */ - signer_key?: string; - /** - * The hex-encoded signer private key for PoX. Specify either this or `signer_signature`, otherwise the PoX transaction requires allow-listing from the signer. - */ - signer_private_key?: string; - /** - * The hex-encoded signer signature for PoX. Specify either this or `signer_private_key`, otherwise the PoX transaction requires allow-listing from the signer. - */ - signer_signature?: string; - /** - * The maximum amount of STX to stack for PoX. If not specified, the `amount` will be used as the `max-amount` for the PoX transaction. - */ - pox_max_amount?: string; - /** - * The auth ID for the PoX transaction. If not specified, a random value will be generated. - */ - pox_auth_id?: string; -} -/** - * The ConstructionMetadataResponse returns network-specific metadata used for transaction construction. Optionally, the implementer can return the suggested fee associated with the transaction being constructed. The caller may use this info to adjust the intent of the transaction or to create a transaction with a different account that can pay the suggested fee. Suggested fee is an array in case fee payment must occur in multiple currencies. - */ -export interface RosettaConstructionMetadataResponse { - metadata: { - account_sequence?: number; - recent_block_hash?: string; - [k: string]: unknown | undefined; - }; - suggested_fee?: RosettaAmount[]; -} -/** - * Parse is called on both unsigned and signed transactions to understand the intent of the formulated transaction. This is run as a sanity check before signing (after /construction/payloads) and before broadcast (after /construction/combine). - */ -export interface RosettaConstructionParseRequest { - network_identifier: NetworkIdentifier; - /** - * Signed is a boolean indicating whether the transaction is signed. - */ - signed: boolean; - /** - * This must be either the unsigned transaction blob returned by /construction/payloads or the signed transaction blob returned by /construction/combine. - */ - transaction: string; -} -/** - * RosettaConstructionParseResponse contains an array of operations that occur in a transaction blob. This should match the array of operations provided to /construction/preprocess and /construction/payloads. - */ -export interface RosettaConstructionParseResponse { - operations: RosettaOperation[]; - /** - * [DEPRECATED by account_identifier_signers in v1.4.4] All signers (addresses) of a particular transaction. If the transaction is unsigned, it should be empty. - */ - signers?: string[]; - account_identifier_signers?: RosettaAccountIdentifier[]; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * ConstructionPayloadsRequest is the request to /construction/payloads. It contains the network, a slice of operations, and arbitrary metadata that was returned by the call to /construction/metadata. Optionally, the request can also include an array of PublicKeys associated with the AccountIdentifiers returned in ConstructionPreprocessResponse. - */ -export interface RosettaConstructionPayloadsRequest { - network_identifier: NetworkIdentifier; - operations: RosettaOperation[]; - public_keys?: RosettaPublicKey[]; - metadata?: { - account_sequence?: number; - recent_block_hash?: string; - [k: string]: unknown | undefined; - }; -} -/** - * RosettaConstructionPayloadResponse is returned by /construction/payloads. It contains an unsigned transaction blob (that is usually needed to construct the a network transaction from a collection of signatures) and an array of payloads that must be signed by the caller. - */ -export interface RosettaConstructionPayloadResponse { - /** - * This is an unsigned transaction blob (that is usually needed to construct the a network transaction from a collection of signatures) - */ - unsigned_transaction: string; - /** - * An array of payloads that must be signed by the caller - */ - payloads: SigningPayload[]; -} -/** - * ConstructionPreprocessRequest is passed to the /construction/preprocess endpoint so that a Rosetta implementation can determine which metadata it needs to request for construction - */ -export interface RosettaConstructionPreprocessRequest { - network_identifier: NetworkIdentifier; - operations: RosettaOperation[]; - metadata?: { - [k: string]: unknown | undefined; - }; - max_fee?: RosettaMaxFeeAmount[]; - /** - * The caller can also provide a suggested fee multiplier to indicate that the suggested fee should be scaled. This may be used to set higher fees for urgent transactions or to pay lower fees when there is less urgency. It is assumed that providing a very low multiplier (like 0.0001) will never lead to a transaction being created with a fee less than the minimum network fee (if applicable). In the case that the caller provides both a max fee and a suggested fee multiplier, the max fee will set an upper bound on the suggested fee (regardless of the multiplier provided). - */ - suggested_fee_multiplier?: number; -} -/** - * Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency. - */ -export interface RosettaMaxFeeAmount { - /** - * Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000. - */ - value: string; - currency: RosettaCurrency; - metadata?: { - [k: string]: unknown | undefined; - }; - [k: string]: unknown | undefined; -} -/** - * RosettaConstructionPreprocessResponse contains options that will be sent unmodified to /construction/metadata. If it is not necessary to make a request to /construction/metadata, options should be omitted. Some blockchains require the PublicKey of particular AccountIdentifiers to construct a valid transaction. To fetch these PublicKeys, populate required_public_keys with the AccountIdentifiers associated with the desired PublicKeys. If it is not necessary to retrieve any PublicKeys for construction, required_public_keys should be omitted. - */ -export interface RosettaConstructionPreprocessResponse { - options?: RosettaOptions; - required_public_keys?: RosettaAccount[]; -} -/** - * Submit the transaction in blockchain - */ -export interface RosettaConstructionSubmitRequest { - network_identifier: NetworkIdentifier; - /** - * Signed transaction - */ - signed_transaction: string; -} -/** - * TransactionIdentifier contains the transaction_identifier of a transaction that was submitted to either /construction/submit. - */ -export interface RosettaConstructionSubmitResponse { - transaction_identifier: TransactionIdentifier; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * Get all Transaction Identifiers in the mempool - */ -export interface RosettaMempoolRequest { - network_identifier: NetworkIdentifier; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * A MempoolResponse contains all transaction identifiers in the mempool for a particular network_identifier. - */ -export interface RosettaMempoolResponse { - transaction_identifiers: TransactionIdentifier[]; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * A MempoolTransactionRequest is utilized to retrieve a transaction from the mempool. - */ -export interface RosettaMempoolTransactionRequest { - network_identifier: NetworkIdentifier; - transaction_identifier: TransactionIdentifier; -} -/** - * A MempoolTransactionResponse contains an estimate of a mempool transaction. It may not be possible to know the full impact of a transaction in the mempool (ex: fee paid). - */ -export interface RosettaMempoolTransactionResponse { - transaction: RosettaTransaction; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * This endpoint returns a list of NetworkIdentifiers that the Rosetta server supports. - */ -export interface RosettaNetworkListRequest { - /** - * A MetadataRequest is utilized in any request where the only argument is optional metadata. - */ - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * A NetworkListResponse contains all NetworkIdentifiers that the node can serve information for. - */ -export interface RosettaNetworkListResponse { - /** - * The network_identifier specifies which network a particular object is associated with. - */ - network_identifiers: NetworkIdentifier[]; -} -/** - * This endpoint returns the version information and allowed network-specific types for a NetworkIdentifier. Any NetworkIdentifier returned by /network/list should be accessible here. Because options are retrievable in the context of a NetworkIdentifier, it is possible to define unique options for each network. - */ -export interface RosettaOptionsRequest { - network_identifier: NetworkIdentifier; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * NetworkOptionsResponse contains information about the versioning of the node and the allowed operation statuses, operation types, and errors. - */ -export interface RosettaNetworkOptionsResponse { - /** - * The Version object is utilized to inform the client of the versions of different components of the Rosetta implementation. - */ - version: { - /** - * The rosetta_version is the version of the Rosetta interface the implementation adheres to. This can be useful for clients looking to reliably parse responses. - */ - rosetta_version: string; - /** - * The node_version is the canonical version of the node runtime. This can help clients manage deployments. - */ - node_version: string; - /** - * When a middleware server is used to adhere to the Rosetta interface, it should return its version here. This can help clients manage deployments. - */ - middleware_version?: string; - /** - * Any other information that may be useful about versioning of dependent services should be returned here. - */ - metadata?: { - [k: string]: unknown | undefined; - }; - }; - /** - * Allow specifies supported Operation status, Operation types, and all possible error statuses. This Allow object is used by clients to validate the correctness of a Rosetta Server implementation. It is expected that these clients will error if they receive some response that contains any of the above information that is not specified here. - */ - allow: { - /** - * All Operation.Status this implementation supports. Any status that is returned during parsing that is not listed here will cause client validation to error. - */ - operation_statuses: RosettaOperationStatus[]; - /** - * All Operation.Type this implementation supports. Any type that is returned during parsing that is not listed here will cause client validation to error. - */ - operation_types: string[]; - /** - * All Errors that this implementation could return. Any error that is returned during parsing that is not listed here will cause client validation to error. - */ - errors: RosettaErrorNoDetails[]; - /** - * Any Rosetta implementation that supports querying the balance of an account at any height in the past should set this to true. - */ - historical_balance_lookup: boolean; - }; -} -/** - * OperationStatus is utilized to indicate which Operation status are considered successful. - */ -export interface RosettaOperationStatus { - /** - * The status is the network-specific status of the operation. - */ - status: string; - /** - * An Operation is considered successful if the Operation.Amount should affect the Operation.Account. Some blockchains (like Bitcoin) only include successful operations in blocks but other blockchains (like Ethereum) include unsuccessful operations that incur a fee. To reconcile the computed balance from the stream of Operations, it is critical to understand which Operation.Status indicate an Operation is successful and should affect an Account. - */ - successful: boolean; -} -/** - * Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields. - */ -export interface RosettaErrorNoDetails { - /** - * Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code. - */ - code: number; - /** - * Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field. - */ - message: string; - /** - * An error is retriable if the same request may succeed if submitted again. - */ - retriable: boolean; -} -/** - * This endpoint returns the current status of the network requested. Any NetworkIdentifier returned by /network/list should be accessible here. - */ -export interface RosettaStatusRequest { - network_identifier: NetworkIdentifier; - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * NetworkStatusResponse contains basic information about the node's view of a blockchain network. It is assumed that any BlockIdentifier.Index less than or equal to CurrentBlockIdentifier.Index can be queried. If a Rosetta implementation prunes historical state, it should populate the optional oldest_block_identifier field with the oldest block available to query. If this is not populated, it is assumed that the genesis_block_identifier is the oldest queryable block. If a Rosetta implementation performs some pre-sync before it is possible to query blocks, sync_status should be populated so that clients can still monitor healthiness. Without this field, it may appear that the implementation is stuck syncing and needs to be terminated. - */ -export interface RosettaNetworkStatusResponse { - current_block_identifier: RosettaBlockIdentifier; - /** - * The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second. - */ - current_block_timestamp: number; - genesis_block_identifier: RosettaGenesisBlockIdentifier; - oldest_block_identifier?: RosettaOldestBlockIdentifier; - sync_status?: RosettaSyncStatus; - /** - * Peers information - */ - peers: RosettaPeers[]; - /** - * The latest burn block height - */ - current_burn_block_height: number; -} -/** - * The block_identifier uniquely identifies a block in a particular network. - */ -export interface RosettaGenesisBlockIdentifier { - /** - * This is also known as the block height. - */ - index: number; - /** - * Block hash - */ - hash: string; -} -/** - * The block_identifier uniquely identifies a block in a particular network. - */ -export interface RosettaOldestBlockIdentifier { - /** - * This is also known as the block height. - */ - index: number; - /** - * Block hash - */ - hash: string; -} -/** - * SyncStatus is used to provide additional context about an implementation's sync status. It is often used to indicate that an implementation is healthy when it cannot be queried until some sync phase occurs. If an implementation is immediately queryable, this model is often not populated. - */ -export interface RosettaSyncStatus { - /** - * CurrentIndex is the index of the last synced block in the current stage. - */ - current_index: number; - /** - * TargetIndex is the index of the block that the implementation is attempting to sync to in the current stage. - */ - target_index?: number; - /** - * Stage is the phase of the sync process. - */ - stage?: string; - /** - * Synced indicates if an implementation has synced up to the most recent block. - */ - synced?: boolean; -} -/** - * A Peer is a representation of a node's peer. - */ -export interface RosettaPeers { - /** - * peer id - */ - peer_id: string; - /** - * meta data - */ - metadata?: { - [k: string]: unknown | undefined; - }; -} -/** - * Address search result - */ -export interface AddressSearchResult { - /** - * Indicates if the requested object was found or not - */ - found: boolean; - /** - * This object carries the search result - */ - result: { - /** - * The id used to search this query. - */ - entity_id: string; - entity_type: "standard_address"; - metadata?: AddressStxBalanceResponse; - }; -} -/** - * Block search result - */ -export interface BlockSearchResult { - /** - * Indicates if the requested object was found or not - */ - found: boolean; - /** - * This object carries the search result - */ - result: { - /** - * The id used to search this query. - */ - entity_id: string; - entity_type: "block_hash"; - /** - * Returns basic search result information about the requested id - */ - block_data: { - /** - * If the block lies within the canonical chain - */ - canonical: boolean; - /** - * Refers to the hash of the block - */ - hash: string; - parent_block_hash: string; - burn_block_time: number; - height: number; - }; - metadata?: Block; - }; -} -/** - * Contract search result - */ -export interface ContractSearchResult { - /** - * Indicates if the requested object was found or not - */ - found: boolean; - /** - * This object carries the search result - */ - result: { - /** - * The id used to search this query. - */ - entity_id: string; - entity_type: "contract_address"; - /** - * Returns basic search result information about the requested id - */ - tx_data?: { - /** - * If the transaction lies within the canonical chain - */ - canonical?: boolean; - /** - * Refers to the hash of the block for searched transaction - */ - block_hash?: string; - burn_block_time?: number; - block_height?: number; - tx_type?: string; - /** - * Corresponding tx_id for smart_contract - */ - tx_id?: string; - }; - metadata?: MempoolTransaction | Transaction; - }; -} -/** - * Error search result - */ -export interface SearchErrorResult { - /** - * Indicates if the requested object was found or not - */ - found: boolean; - result: { - /** - * Shows the currenty category of entity it is searched in. - */ - entity_type: "standard_address" | "unknown_hash" | "contract_address" | "invalid_term"; - }; - error: string; -} -/** - * Contract search result - */ -export interface MempoolTxSearchResult { - /** - * Indicates if the requested object was found or not - */ - found: boolean; - /** - * This object carries the search result - */ - result: { - /** - * The id used to search this query. - */ - entity_id: string; - entity_type: "mempool_tx_id"; - /** - * Returns basic search result information about the requested id - */ - tx_data: { - tx_type: string; - }; - metadata?: MempoolTransaction; - }; -} -/** - * Transaction search result - */ -export interface TxSearchResult { - /** - * Indicates if the requested object was found or not - */ - found: boolean; - /** - * This object carries the search result - */ - result: { - /** - * The id used to search this query. - */ - entity_id: string; - entity_type: "tx_id"; - /** - * Returns basic search result information about the requested id - */ - tx_data: { - /** - * If the transaction lies within the canonical chain - */ - canonical: boolean; - /** - * Refers to the hash of the block for searched transaction - */ - block_hash: string; - burn_block_time: number; - block_height: number; - tx_type: string; - }; - metadata?: Transaction; - }; -} -/** - * GET request that returns the deployment status of multiple smart contracts - */ -export interface SmartContractsStatusResponse { - [k: string]: (SmartContractFound | SmartContractNotFound) | undefined; -} -export interface SmartContractFound { - found: true; - result: SmartContractStatus; -} -/** - * Deployment status of a smart contract - */ -export interface SmartContractStatus { - /** - * Smart contract deployment transaction status - */ - status: string; - /** - * Deployment transaction ID - */ - tx_id: string; - /** - * Smart contract ID - */ - contract_id: string; - /** - * Height of the transaction confirmation block - */ - block_height?: number; -} -export interface SmartContractNotFound { - found: false; -} -/** - * GET request that returns stacking pool member details for a given pool (delegator) principal - */ -export interface PoolDelegationsResponse { - /** - * The number of Stackers to return - */ - limit: number; - /** - * The number to Stackers to skip (starting at `0`) - */ - offset: number; - /** - * The total number of Stackers - */ - total: number; - results: PoolDelegation[]; -} -export interface PoolDelegation { - /** - * The principal of the pool member that issued the delegation - */ - stacker: string; - /** - * The pox-addr value specified by the stacker in the delegation operation - */ - pox_addr?: string; - /** - * The amount of uSTX delegated by the stacker - */ - amount_ustx: string; - /** - * The optional burnchain block unlock height that the stacker may have specified - */ - burn_block_unlock_height?: number; - /** - * The block height at which the stacker delegation transaction was mined at - */ - block_height: number; - /** - * The tx_id of the stacker delegation operation - */ - tx_id: string; -} -/** - * GET request that returns stackers for a signer in a PoX cycle - */ -export interface PoxCycleSignerStackersListResponse { - /** - * The number of stackers to return - */ - limit: number; - /** - * The number to stackers to skip (starting at `0`) - */ - offset: number; - /** - * The total number of stackers - */ - total: number; - results: PoxStacker[]; -} -export interface PoxStacker { - stacker_address: string; - stacked_amount: string; - pox_address: string; - stacker_type: "solo" | "pooled"; -} -/** - * GET request that returns signers for a PoX cycle - */ -export interface PoxCycleSignersListResponse { - /** - * The number of signers to return - */ - limit: number; - /** - * The number to signers to skip (starting at `0`) - */ - offset: number; - /** - * The total number of signers - */ - total: number; - results: PoxSigner[]; -} -export interface PoxSigner { - signing_key: string; - /** - * The Stacks address derived from the signing_key. - */ - signer_address: string; - weight: number; - stacked_amount: string; - weight_percent: number; - stacked_amount_percent: number; - /** - * The number of solo stackers associated with this signer. - */ - solo_stacker_count: number; - /** - * The number of pooled stackers associated with this signer. - */ - pooled_stacker_count: number; -} -/** - * GET request that returns PoX cycles - */ -export interface PoxCycleListResponse { - /** - * The number of cycles to return - */ - limit: number; - /** - * The number to cycles to skip (starting at `0`) - */ - offset: number; - /** - * The total number of cycles - */ - total: number; - results: PoxCycle[]; -} -export interface PoxCycle { - block_height: number; - index_block_hash: string; - cycle_number: number; - total_weight: number; - total_stacked_amount: string; - total_signers: number; -} -/** - * List of Fungible Token holders - */ -export interface FungibleTokenHolderList { - /** - * The number of holders to return - */ - limit: number; - /** - * The number to holders to skip (starting at `0`) - */ - offset: number; - /** - * The number of holders available - */ - total: number; - /** - * The total supply of the token (the sum of all balances) - */ - total_supply: string; - results: FtHolderEntry[]; -} -export interface FtHolderEntry { - address: string; - balance: string; -} -/** - * List of Non-Fungible Token history events - */ -export interface NonFungibleTokenHistoryEventList { - /** - * The number of events to return - */ - limit: number; - /** - * The number to events to skip (starting at `0`) - */ - offset: number; - /** - * The number of events available - */ - total: number; - results: NonFungibleTokenHistoryEvent[]; -} -/** - * Non-Fungible Token history event with transaction id - */ -export interface NonFungibleTokenHistoryEventWithTxId { - sender?: string; - recipient?: string; - event_index: number; - asset_event_type: string; - tx_id: string; -} -/** - * Non-Fungible Token history event with transaction metadata - */ -export interface NonFungibleTokenHistoryEventWithTxMetadata { - sender?: string; - recipient?: string; - event_index: number; - asset_event_type: string; - tx: Transaction; -} -/** - * List of Non-Fungible Token holdings - */ -export interface NonFungibleTokenHoldingsList { - /** - * The number of Non-Fungible Token holdings to return - */ - limit: number; - /** - * The number to Non-Fungible Token holdings to skip (starting at `0`) - */ - offset: number; - /** - * The number of Non-Fungible Token holdings available - */ - total: number; - results: NonFungibleTokenHolding[]; -} -/** - * Ownership of a Non-Fungible Token - */ -export interface NonFungibleTokenHoldingWithTxId { - asset_identifier: string; - /** - * Non-Fungible Token value - */ - value: { - /** - * Hex string representing the identifier of the Non-Fungible Token - */ - hex: string; - /** - * Readable string of the Non-Fungible Token identifier - */ - repr: string; - }; - block_height: number; - tx_id: string; -} -/** - * Ownership of a Non-Fungible Token with transaction metadata - */ -export interface NonFungibleTokenHoldingWithTxMetadata { - asset_identifier: string; - /** - * Non-Fungible Token value - */ - value: { - /** - * Hex string representing the identifier of the Non-Fungible Token - */ - hex: string; - /** - * Readable string of the Non-Fungible Token identifier - */ - repr: string; - }; - block_height: number; - tx: Transaction; -} -/** - * List of Non-Fungible Token mint events for an asset identifier - */ -export interface NonFungibleTokenMintList { - /** - * The number of mint events to return - */ - limit: number; - /** - * The number to mint events to skip (starting at `0`) - */ - offset: number; - /** - * The number of mint events available - */ - total: number; - results: NonFungibleTokenMint[]; -} -/** - * Non-Fungible Token mint event with transaction id - */ -export interface NonFungibleTokenMintWithTxId { - recipient?: string; - event_index: number; - /** - * Non-Fungible Token value - */ - value: { - /** - * Hex string representing the identifier of the Non-Fungible Token - */ - hex: string; - /** - * Readable string of the Non-Fungible Token identifier - */ - repr: string; - }; - tx_id: string; -} -/** - * Non-Fungible Token mint event with transaction metadata - */ -export interface NonFungibleTokenMintWithTxMetadata { - recipient?: string; - event_index: number; - /** - * Non-Fungible Token value - */ - value: { - /** - * Hex string representing the identifier of the Non-Fungible Token - */ - hex: string; - /** - * Readable string of the Non-Fungible Token identifier - */ - repr: string; - }; - tx: Transaction; -} -/** - * GET request that returns stats on mempool transactions - */ -export interface MempoolTransactionStatsResponse { - /** - * Number of tranasction in the mempool, broken down by transaction type. - */ - tx_type_counts: { - token_transfer: number; - smart_contract: number; - contract_call: number; - poison_microblock: number; - }; - /** - * The simple mean (average) transaction fee, broken down by transaction type. Note that this does not factor in actual execution costs. The average fee is not a reliable metric for calculating a fee for a new transaction. - */ - tx_simple_fee_averages: { - token_transfer: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - smart_contract: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - contract_call: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - poison_microblock: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - }; - /** - * The average time (in blocks) that transactions have lived in the mempool. The start block height is simply the current chain-tip of when the attached Stacks node receives the transaction. This timing can be different across Stacks nodes / API instances due to propagation timing differences in the p2p network. - */ - tx_ages: { - token_transfer: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - smart_contract: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - contract_call: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - poison_microblock: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - }; - /** - * The average byte size of transactions in the mempool, broken down by transaction type. - */ - tx_byte_sizes: { - token_transfer: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - smart_contract: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - contract_call: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - poison_microblock: { - p25: number; - p50: number; - p75: number; - p95: number; - }; - }; -} -/** - * GET request that returns transactions - */ -export interface MempoolTransactionListResponse { - limit: number; - offset: number; - total: number; - results: MempoolTransaction[]; -} -/** - * GET raw transaction - */ -export interface GetRawTransactionResult { - /** - * A hex encoded serialized transaction - */ - raw_tx: string; -} -/** - * GET event for the given transaction - */ -export interface TransactionEventsResponse { - limit: number; - offset: number; - results: TransactionEvent[]; -} -/** - * GET request that returns transactions - */ -export interface TransactionResults { - /** - * The number of transactions to return - */ - limit: number; - /** - * The number to transactions to skip (starting at `0`) - */ - offset: number; - /** - * The number of transactions available - */ - total: number; - results: Transaction[]; -} -/** - * GET request that returns transactions - */ -export interface PostCoreNodeTransactionsError { - /** - * The error - */ - error: string; - /** - * The reason for the error - */ - reason: string; - /** - * More details about the reason - */ - reason_data: { - [k: string]: unknown | undefined; - }; - /** - * The relevant transaction id - */ - txid: string; -} -/** - * The latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions - */ -export interface AddressNonces { - /** - * The latest nonce found within mempool transactions sent by this address. Will be null if there are no current mempool transactions for this address. - */ - last_mempool_tx_nonce: number; - /** - * The latest nonce found within transactions sent by this address, including unanchored microblock transactions. Will be null if there are no current transactions for this address. - */ - last_executed_tx_nonce: number; - /** - * The likely nonce required for creating the next transaction, based on the last nonces seen by the API. This can be incorrect if the API's mempool or transactions aren't fully synchronized, even by a small amount, or if a previous transaction is still propagating through the Stacks blockchain network when this endpoint is called. - */ - possible_next_nonce: number; - /** - * Nonces that appear to be missing and likely causing a mempool transaction to be stuck. - */ - detected_missing_nonces: number[]; - /** - * Nonces currently in mempool for this address. - */ - detected_mempool_nonces?: number[]; -} -/** - * Total burnchain rewards made to a recipient - */ -export interface BurnchainRewardsTotal { - /** - * The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin) - */ - reward_recipient: string; - /** - * The total amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin) - */ - reward_amount: string; -} -/** - * Describes representation of a Type-0 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-0-transferring-an-asset - */ -export interface ReadOnlyFunctionArgs { - /** - * The simulated tx-sender - */ - sender: string; - /** - * An array of hex serialized Clarity values - */ - arguments: string[]; -} -export interface NftEvent { - sender?: string; - recipient?: string; - asset_identifier: string; - asset_event_type: string; - /** - * Identifier of the NFT - */ - value: { - /** - * Hex string representing the identifier of the NFT - */ - hex: string; - /** - * Readable string of the NFT identifier - */ - repr: string; - }; - tx_id: string; - tx_index: number; - block_height: number; - event_index: number; -} -/** - * Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields. - */ -export interface RosettaError { - /** - * Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code. - */ - code: number; - /** - * Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field. - */ - message: string; - /** - * An error is retriable if the same request may succeed if submitted again. - */ - retriable: boolean; - /** - * Often times it is useful to return context specific to the request that caused the error (i.e. a sample of the stack trace or impacted account) in addition to the standard error message. - */ - details?: { - address?: string; - error?: string; - [k: string]: unknown | undefined; - }; -} -/** - * This object returns transaction for found true - */ -export interface TransactionFound { - found: true; - result: MempoolTransaction | Transaction; -} -export interface TransactionList { - [k: string]: (TransactionFound | TransactionNotFound) | undefined; -} -/** - * This object returns the id for not found transaction - */ -export interface TransactionNotFound { - found: false; - result: { - tx_id: string; - }; -} -export interface RpcAddressBalanceNotificationResponse { - jsonrpc: "2.0"; - method: "address_balance_update"; - params: RpcAddressBalanceNotificationParams; -} -export interface RpcAddressBalanceSubscriptionParams { - event: "address_balance_update"; - address: string; -} -export interface RpcAddressBalanceSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "address_balance_update"; - params: RpcAddressBalanceSubscriptionParams; -} -export interface RpcAddressTxNotificationResponse { - jsonrpc: "2.0"; - method: "address_tx_update"; - params: RpcAddressTxNotificationParams; -} -export interface RpcAddressTxSubscriptionParams { - event: "address_tx_update"; - address: string; -} -export interface RpcAddressTxSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "address_tx_update"; - params: RpcAddressTxSubscriptionParams; -} -export interface RpcBlockNotificationResponse { - jsonrpc: "2.0"; - method: "block"; - params: Block; -} -export interface RpcBlockSubscriptionParams { - event: "block"; -} -export interface RpcBlockSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "block"; - params: RpcBlockSubscriptionParams; -} -export interface RpcMempoolNotificationResponse { - jsonrpc: "2.0"; - method: "mempool"; - params: Transaction; -} -export interface RpcMempoolSubscriptionParams { - event: "mempool"; -} -export interface RpcMempoolSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "mempool"; - params: RpcMempoolSubscriptionParams; -} -export interface RpcMicroblockNotificationResponse { - jsonrpc: "2.0"; - method: "microblock"; - params: Microblock; -} -export interface RpcMicroblockSubscriptionParams { - event: "microblock"; -} -export interface RpcMicroblockSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "microblock"; - params: RpcMicroblockSubscriptionParams; -} -export interface RpcNftAssetEventSubscriptionParams { - event: "nft_asset_event"; - asset_identifier: string; - value: string; -} -export interface RpcNftAssetEventSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "nft_asset_event"; - params: RpcNftAssetEventSubscriptionParams; -} -export interface RpcNftCollectionEventSubscriptionParams { - event: "nft_collection_event"; - asset_identifier: string; -} -export interface RpcNftCollectionEventSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "nft_collection_event"; - params: RpcNftCollectionEventSubscriptionParams; -} -export interface RpcNftEventNotificationResponse { - jsonrpc: "2.0"; - method: "block"; - params: NftEvent; -} -export interface RpcNftEventSubscriptionParams { - event: "nft_event"; -} -export interface RpcNftEventSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "nft_event"; - params: RpcNftEventSubscriptionParams; -} -export interface RpcTxUpdateNotificationResponse { - jsonrpc: "2.0"; - method: "tx_update"; - params: Transaction | MempoolTransaction; -} -export interface RpcTxUpdateSubscriptionParams { - event: "tx_update"; - tx_id: string; -} -export interface RpcTxUpdateSubscriptionRequest { - jsonrpc: "2.0"; - id: number | string; - method: "tx_update"; - params: RpcTxUpdateSubscriptionParams; -} diff --git a/src/api/controllers/db-controller.ts b/src/api/controllers/db-controller.ts index 90acb7c2b..a21b74613 100644 --- a/src/api/controllers/db-controller.ts +++ b/src/api/controllers/db-controller.ts @@ -15,7 +15,7 @@ import { RosettaBlock, RosettaParentBlockIdentifier, RosettaTransaction, -} from '@stacks/stacks-blockchain-api-types'; +} from '../../rosetta/types'; import { BlockIdentifier, diff --git a/src/api/rosetta-constants.ts b/src/api/rosetta-constants.ts index 1e563f654..86596a6b4 100644 --- a/src/api/rosetta-constants.ts +++ b/src/api/rosetta-constants.ts @@ -1,5 +1,13 @@ -import * as T from '@stacks/stacks-blockchain-api-types'; -import { RosettaErrorNoDetails } from '@stacks/stacks-blockchain-api-types'; +import { + RosettaAccountBalanceRequest, + RosettaBlockRequest, + RosettaBlockTransactionRequest, + RosettaErrorNoDetails, + RosettaMempoolTransactionRequest, + RosettaNetworkListRequest, + RosettaOptionsRequest, + RosettaStatusRequest, +} from '../rosetta/types'; import { ChainID, getChainIDNetwork } from '../helpers'; export const RosettaNetworks = { @@ -368,13 +376,13 @@ export const RosettaErrors: Record { +export function makeRosettaError(notValid: ValidSchema): Readonly { const error = notValid.error || ''; if (error.search(/network_identifier/) != -1) { return { diff --git a/src/api/routes/address.ts b/src/api/routes/address.ts index 87399b665..b76faf456 100644 --- a/src/api/routes/address.ts +++ b/src/api/routes/address.ts @@ -37,12 +37,13 @@ import { InboundStxTransferSchema, } from '../schemas/entities/addresses'; import { PaginatedResponse } from '../schemas/util'; -import { - MempoolTransaction, - MempoolTransactionSchema, - TransactionSchema, -} from '../schemas/entities/transactions'; +import { MempoolTransaction, MempoolTransactionSchema } from '../schemas/entities/transactions'; import { TransactionEvent, TransactionEventSchema } from '../schemas/entities/transaction-events'; +import { + AddressStxInboundListResponseSchema, + AddressTransactionsListResponseSchema, + AddressTransactionsWithTransfersListResponseSchema, +} from '../schemas/responses/responses'; async function getBlockHeight( untilBlock: number | string | undefined, @@ -287,10 +288,7 @@ export const AddressRoutes: FastifyPluginAsync< ), }), response: { - 200: PaginatedResponse(TransactionSchema, { - title: 'AddressTransactionsListResponse', - description: 'GET request that returns account transactions', - }), + 200: AddressTransactionsListResponseSchema, }, }, }, @@ -440,9 +438,7 @@ export const AddressRoutes: FastifyPluginAsync< ), }), response: { - 200: PaginatedResponse(AddressTransactionWithTransfersSchema, { - title: 'AddressTransactionsWithTransfersListResponse', - }), + 200: AddressTransactionsWithTransfersListResponseSchema, }, }, }, @@ -626,9 +622,7 @@ export const AddressRoutes: FastifyPluginAsync< ), }), response: { - 200: PaginatedResponse(InboundStxTransferSchema, { - title: 'AddressStxInboundListResponse', - }), + 200: AddressStxInboundListResponseSchema, }, }, }, diff --git a/src/api/routes/burnchain.ts b/src/api/routes/burnchain.ts index 79da0fd85..895233309 100644 --- a/src/api/routes/burnchain.ts +++ b/src/api/routes/burnchain.ts @@ -15,6 +15,10 @@ import { BurnchainRewardsTotal, BurnchainRewardsTotalSchema, } from '../schemas/entities/burnchain-rewards'; +import { + BurnchainRewardListResponseSchema, + BurnchainRewardSlotHolderListResponseSchema, +} from '../schemas/responses/responses'; export const BurnchainRoutes: FastifyPluginAsync< Record, @@ -83,10 +87,7 @@ export const BurnchainRoutes: FastifyPluginAsync< offset: OffsetParam(), }), response: { - 200: PaginatedResponse(BurnchainRewardSlotHolderSchema, { - title: 'BurnchainRewardSlotHolderListResponse', - description: 'List of burnchain reward recipients and amounts', - }), + 200: BurnchainRewardSlotHolderListResponseSchema, }, }, }, @@ -149,16 +150,7 @@ export const BurnchainRoutes: FastifyPluginAsync< offset: OffsetParam(), }), response: { - 200: Type.Object( - { - limit: Type.Integer(), - offset: Type.Integer(), - results: Type.Array(BurnchainRewardSchema), - }, - { - description: 'List of burnchain reward recipients and amounts', - } - ), + 200: BurnchainRewardListResponseSchema, }, }, }, diff --git a/src/api/routes/debug.ts b/src/api/routes/debug.ts index fa8c46754..0f2be6672 100644 --- a/src/api/routes/debug.ts +++ b/src/api/routes/debug.ts @@ -48,7 +48,7 @@ import { RosettaConstructionSubmitRequest, RosettaConstructionSubmitResponse, RosettaOperation, -} from '@stacks/stacks-blockchain-api-types'; +} from '../../rosetta/types'; import { getRosettaNetworkName, RosettaConstants } from '../rosetta-constants'; import { StackingClient, decodeBtcAddress, poxAddressToTuple } from '@stacks/stacking'; import { getPublicKeyFromPrivate } from '@stacks/encryption'; diff --git a/src/api/routes/faucets.ts b/src/api/routes/faucets.ts index 0e7230041..4cf68622f 100644 --- a/src/api/routes/faucets.ts +++ b/src/api/routes/faucets.ts @@ -25,6 +25,7 @@ import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { fastifyFormbody } from '@fastify/formbody'; import { Server } from 'node:http'; import { OptionalNullable } from '../schemas/util'; +import { RunFaucetResponseSchema } from '../schemas/responses/responses'; export function getStxFaucetNetworks(): StacksNetwork[] { const networks: StacksNetwork[] = [getStacksTestnetNetwork()]; @@ -296,20 +297,7 @@ export const FaucetRoutes: FastifyPluginAsync< }) ), response: { - 200: Type.Object( - { - success: Type.Literal(true, { - description: 'Indicates if the faucet call was successful', - }), - txId: Type.String({ description: 'The transaction ID for the faucet call' }), - txRaw: Type.String({ description: 'Raw transaction in hex string representation' }), - }, - { - title: 'RunFaucetResponse', - description: - 'POST request that initiates a transfer of tokens to a specified testnet address', - } - ), + 200: RunFaucetResponseSchema, '4xx': Type.Object({ success: Type.Literal(false, { description: 'Indicates if the faucet call was successful', diff --git a/src/api/routes/microblock.ts b/src/api/routes/microblock.ts index ee10285b6..b61d352d9 100644 --- a/src/api/routes/microblock.ts +++ b/src/api/routes/microblock.ts @@ -15,6 +15,7 @@ import { PaginatedResponse } from '../schemas/util'; import { MicroblockSchema } from '../schemas/entities/microblock'; import { NotFoundError } from '../../errors'; import { TransactionSchema } from '../schemas/entities/transactions'; +import { MicroblockListResponseSchema } from '../schemas/responses/responses'; export const MicroblockRoutes: FastifyPluginAsync< Record, @@ -37,10 +38,7 @@ export const MicroblockRoutes: FastifyPluginAsync< offset: OffsetParam(), }), response: { - 200: PaginatedResponse(MicroblockSchema, { - title: 'MicroblockListResponse', - description: 'GET request that returns microblocks', - }), + 200: MicroblockListResponseSchema, }, }, }, diff --git a/src/api/routes/rosetta/account.ts b/src/api/routes/rosetta/account.ts index 93de7cdf7..f6efa53c7 100644 --- a/src/api/routes/rosetta/account.ts +++ b/src/api/routes/rosetta/account.ts @@ -8,13 +8,13 @@ import { RosettaBlockIdentifier, RosettaAccountBalanceResponse, RosettaSubAccount, - AddressTokenOfferingLocked, RosettaAmount, -} from '@stacks/stacks-blockchain-api-types'; +} from '../../../rosetta/types'; import { RosettaErrors, RosettaConstants, RosettaErrorsTypes } from '../../rosetta-constants'; import { rosettaValidateRequest, ValidSchema, makeRosettaError } from '../../rosetta-validate'; import { has0xPrefix } from '@hirosystems/api-toolkit'; import { RosettaFtMetadataClient } from '../../../rosetta/rosetta-ft-metadata-client'; +import { AddressTokenOfferingLocked } from '../../schemas/entities/addresses'; export function createRosettaAccountRouter(db: PgStore, chainId: ChainID): express.Router { const router = express.Router(); diff --git a/src/api/routes/rosetta/block.ts b/src/api/routes/rosetta/block.ts index f99bb670a..b630ab66b 100644 --- a/src/api/routes/rosetta/block.ts +++ b/src/api/routes/rosetta/block.ts @@ -1,6 +1,6 @@ import * as express from 'express'; import { asyncHandler } from '../../async-handler'; -import { RosettaBlockResponse } from '@stacks/stacks-blockchain-api-types'; +import { RosettaBlockResponse } from '../../../rosetta/types'; import { PgStore } from '../../../datastore/pg-store'; import { getRosettaTransactionFromDataStore, diff --git a/src/api/routes/rosetta/construction.ts b/src/api/routes/rosetta/construction.ts index 35fc411e5..09137e0b4 100644 --- a/src/api/routes/rosetta/construction.ts +++ b/src/api/routes/rosetta/construction.ts @@ -23,7 +23,7 @@ import { RosettaOperation, RosettaOptions, RosettaPublicKey, -} from '@stacks/stacks-blockchain-api-types'; +} from '../../../rosetta/types'; import { AnchorMode, AuthType, diff --git a/src/api/routes/rosetta/mempool.ts b/src/api/routes/rosetta/mempool.ts index bdaee0b44..7a168ea90 100644 --- a/src/api/routes/rosetta/mempool.ts +++ b/src/api/routes/rosetta/mempool.ts @@ -7,7 +7,7 @@ import { RosettaMempoolResponse, RosettaMempoolTransactionResponse, RosettaTransaction, -} from '@stacks/stacks-blockchain-api-types'; +} from '../../../rosetta/types'; import { getOperations, parseTransactionMemo } from '../../../rosetta/rosetta-helpers'; import { RosettaErrors, RosettaErrorsTypes } from '../../rosetta-constants'; import { has0xPrefix } from '@hirosystems/api-toolkit'; diff --git a/src/api/routes/rosetta/network.ts b/src/api/routes/rosetta/network.ts index a314e0ac9..7afb637fb 100644 --- a/src/api/routes/rosetta/network.ts +++ b/src/api/routes/rosetta/network.ts @@ -18,7 +18,7 @@ import { RosettaNetworkOptionsResponse, RosettaNetworkStatusResponse, RosettaSyncStatus, -} from '@stacks/stacks-blockchain-api-types'; +} from '../../../rosetta/types'; import { rosettaValidateRequest, ValidSchema, makeRosettaError } from '../../rosetta-validate'; import { ChainID } from '../../../helpers'; import { PgStore } from '../../../datastore/pg-store'; diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index 4f396baca..d2dea2a12 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -47,7 +47,10 @@ import { PaginatedResponse } from '../schemas/util'; import { ErrorResponseSchema, MempoolStatsResponseSchema, + MempoolTransactionListResponse, RawTransactionResponseSchema, + TransactionEventsResponseSchema, + TransactionResultsSchema, } from '../schemas/responses/responses'; import { TransactionEventSchema, @@ -132,7 +135,7 @@ export const TxRoutes: FastifyPluginAsync< ), }), response: { - 200: PaginatedResponse(TransactionSchema, { description: 'List of transactions' }), + 200: TransactionResultsSchema, }, }, }, @@ -275,9 +278,7 @@ export const TxRoutes: FastifyPluginAsync< limit: LimitParam(ResourceType.Tx), }), response: { - 200: PaginatedResponse(MempoolTransactionSchema, { - description: 'List of mempool transactions', - }), + 200: MempoolTransactionListResponse, }, }, }, @@ -416,14 +417,7 @@ export const TxRoutes: FastifyPluginAsync< limit: LimitParam(ResourceType.Event), }), response: { - 200: Type.Object( - { - limit: Type.Integer({ examples: [20] }), - offset: Type.Integer({ examples: [0] }), - events: Type.Array(TransactionEventSchema), - }, - { title: 'List of events' } - ), + 200: TransactionEventsResponseSchema, }, }, }, diff --git a/src/api/schemas/entities/transactions.ts b/src/api/schemas/entities/transactions.ts index b80d6bac1..2a12704a8 100644 --- a/src/api/schemas/entities/transactions.ts +++ b/src/api/schemas/entities/transactions.ts @@ -356,6 +356,7 @@ export const TokenTransferTransactionSchema = Type.Object( }, { title: 'TokenTransferTransaction' } ); +export type TokenTransferTransaction = Static; export const SmartContractTransactionSchema = Type.Object( { @@ -364,6 +365,7 @@ export const SmartContractTransactionSchema = Type.Object( }, { title: 'SmartContractTransaction' } ); +export type SmartContractTransaction = Static; export const ContractCallTransactionSchema = Type.Object( { @@ -372,6 +374,7 @@ export const ContractCallTransactionSchema = Type.Object( }, { title: 'ContractCallTransaction' } ); +export type ContractCallTransaction = Static; export const PoisonMicroblockTransactionSchema = Type.Object( { @@ -380,6 +383,7 @@ export const PoisonMicroblockTransactionSchema = Type.Object( }, { title: 'PoisonMicroblockTransaction' } ); +export type PoisonMicroblockTransaction = Static; export const CoinbaseTransactionSchema = Type.Object( { @@ -388,6 +392,7 @@ export const CoinbaseTransactionSchema = Type.Object( }, { title: 'CoinbaseTransaction' } ); +export type CoinbaseTransaction = Static; export const TenureChangeTransactionSchema = Type.Object( { @@ -396,6 +401,7 @@ export const TenureChangeTransactionSchema = Type.Object( }, { title: 'TenureChangeTransaction' } ); +export type TenureChangeTransaction = Static; const TransactionMetadataSchema = Type.Union([ TokenTransferTransactionMetadataSchema, diff --git a/src/api/schemas/responses/responses.ts b/src/api/schemas/responses/responses.ts index e8f472b88..a926dc10a 100644 --- a/src/api/schemas/responses/responses.ts +++ b/src/api/schemas/responses/responses.ts @@ -1,6 +1,17 @@ import { Static, Type } from '@sinclair/typebox'; -import { OptionalNullable } from '../util'; +import { OptionalNullable, PaginatedResponse } from '../util'; import { MempoolStatsSchema } from '../entities/mempool-transactions'; +import { MempoolTransactionSchema, TransactionSchema } from '../entities/transactions'; +import { MicroblockSchema } from '../entities/microblock'; +import { + AddressTransactionWithTransfersSchema, + InboundStxTransferSchema, +} from '../entities/addresses'; +import { TransactionEventSchema } from '../entities/transaction-events'; +import { + BurnchainRewardSchema, + BurnchainRewardSlotHolderSchema, +} from '../entities/burnchain-rewards'; export const ErrorResponseSchema = Type.Object( { @@ -82,3 +93,88 @@ export const RawTransactionResponseSchema = Type.Object( }, { title: 'GetRawTransactionResult', description: 'GET raw transaction' } ); + +export const TransactionResultsSchema = PaginatedResponse(TransactionSchema, { + description: 'List of transactions', +}); +export type TransactionResults = Static; + +export const MempoolTransactionListResponse = PaginatedResponse(MempoolTransactionSchema, { + description: 'List of mempool transactions', +}); +export type MempoolTransactionListResponse = Static; + +export const MicroblockListResponseSchema = PaginatedResponse(MicroblockSchema, { + title: 'MicroblockListResponse', + description: 'GET request that returns microblocks', +}); +export type MicroblockListResponse = Static; + +export const AddressTransactionsWithTransfersListResponseSchema = PaginatedResponse( + AddressTransactionWithTransfersSchema, + { + title: 'AddressTransactionsWithTransfersListResponse', + } +); +export type AddressTransactionsWithTransfersListResponse = Static< + typeof AddressTransactionsWithTransfersListResponseSchema +>; + +export const AddressTransactionsListResponseSchema = PaginatedResponse(TransactionSchema, { + title: 'AddressTransactionsListResponse', + description: 'GET request that returns account transactions', +}); +export type AddressTransactionsListResponse = Static; + +export const AddressStxInboundListResponseSchema = PaginatedResponse(InboundStxTransferSchema, { + title: 'AddressStxInboundListResponse', +}); +export type AddressStxInboundListResponse = Static; + +export const TransactionEventsResponseSchema = Type.Object( + { + limit: Type.Integer({ examples: [20] }), + offset: Type.Integer({ examples: [0] }), + events: Type.Array(TransactionEventSchema), + }, + { title: 'List of events' } +); +export type TransactionEventsResponse = Static; + +export const BurnchainRewardSlotHolderListResponseSchema = PaginatedResponse( + BurnchainRewardSlotHolderSchema, + { + title: 'BurnchainRewardSlotHolderListResponse', + description: 'List of burnchain reward recipients and amounts', + } +); +export type BurnchainRewardSlotHolderListResponse = Static< + typeof BurnchainRewardSlotHolderListResponseSchema +>; + +export const BurnchainRewardListResponseSchema = Type.Object( + { + limit: Type.Integer(), + offset: Type.Integer(), + results: Type.Array(BurnchainRewardSchema), + }, + { + description: 'List of burnchain reward recipients and amounts', + } +); +export type BurnchainRewardListResponse = Static; + +export const RunFaucetResponseSchema = Type.Object( + { + success: Type.Literal(true, { + description: 'Indicates if the faucet call was successful', + }), + txId: Type.String({ description: 'The transaction ID for the faucet call' }), + txRaw: Type.String({ description: 'Raw transaction in hex string representation' }), + }, + { + title: 'RunFaucetResponse', + description: 'POST request that initiates a transfer of tokens to a specified testnet address', + } +); +export type RunFaucetResponse = Static; diff --git a/src/rosetta/rosetta-helpers.ts b/src/rosetta/rosetta-helpers.ts index 75004f104..2f924e82f 100644 --- a/src/rosetta/rosetta-helpers.ts +++ b/src/rosetta/rosetta-helpers.ts @@ -1,10 +1,9 @@ import { - ContractCallTransaction, RosettaAccountIdentifier, RosettaCurrency, RosettaOperation, RosettaOptions, -} from '@stacks/stacks-blockchain-api-types'; +} from '../rosetta/types'; import { addressToString, AuthType, @@ -73,6 +72,7 @@ import { logger } from '../logger'; import { hexToBuffer } from '@hirosystems/api-toolkit'; import { RosettaFtMetadata, RosettaFtMetadataClient } from './rosetta-ft-metadata-client'; import { PoxContractIdentifiers } from '../pox-helpers'; +import { ContractCallTransaction } from '../api/schemas/entities/transactions'; enum CoinAction { CoinSpent = 'coin_spent', diff --git a/src/rosetta/types.ts b/src/rosetta/types.ts new file mode 100644 index 000000000..62cc8289e --- /dev/null +++ b/src/rosetta/types.ts @@ -0,0 +1,1034 @@ +/** + * The network_identifier specifies which network a particular object is associated with. + */ +export interface NetworkIdentifier { + /** + * Blockchain name + */ + blockchain: string; + /** + * If a blockchain has a specific chain-id or network identifier, it should go in this field. It is up to the client to determine which network-specific identifier is mainnet or testnet. + */ + network: string; + /** + * In blockchains with sharded state, the SubNetworkIdentifier is required to query some object on a specific shard. This identifier is optional for all non-sharded blockchains. + */ + sub_network_identifier?: { + /** + * Network name + */ + network: string; + /** + * Meta data from subnetwork identifier + */ + metadata?: { + /** + * producer + */ + producer: string; + [k: string]: unknown | undefined; + }; + }; +} + +/** + * A BlockTransactionRequest is used to fetch a Transaction included in a block that is not returned in a BlockResponse. + */ +export interface RosettaBlockTransactionRequest { + network_identifier: NetworkIdentifier; + block_identifier: RosettaPartialBlockIdentifier; + transaction_identifier: TransactionIdentifier; +} +/** + * The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated). + */ +export interface RosettaAccount { + /** + * The address may be a cryptographic public key (or some encoding of it) or a provided username. + */ + address: string; + sub_account?: RosettaSubAccount; + /** + * Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata. + */ + metadata?: { + [k: string]: unknown | undefined; + }; +} +/** + * When fetching data by BlockIdentifier, it may be possible to only specify the index or hash. If neither property is specified, it is assumed that the client is making a request at the current block. + */ +export type RosettaPartialBlockIdentifier = + | RosettaBlockIdentifierHash + | RosettaBlockIdentifierHeight + | { + [k: string]: unknown | undefined; + }; + +/** + * The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool. + */ +export interface TransactionIdentifier { + /** + * Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier. + */ + hash: string; +} + +/** + * An account may have state specific to a contract address (ERC-20 token) and/or a stake (delegated balance). The sub_account_identifier should specify which state (if applicable) an account instantiation refers to. + */ +export interface RosettaSubAccount { + /** + * The address may be a cryptographic public key (or some encoding of it) or a provided username. + */ + address: string; + /** + * If the SubAccount address is not sufficient to uniquely specify a SubAccount, any other identifying information can be stored here. It is important to note that two SubAccounts with identical addresses but differing metadata will not be considered equal by clients. + */ + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * This is also known as the block hash. + */ +export interface RosettaBlockIdentifierHash { + /** + * This is also known as the block hash. + */ + hash: string; +} + +/** + * This is also known as the block height. + */ +export interface RosettaBlockIdentifierHeight { + /** + * This is also known as the block height. + */ + index: number; +} + +/** + * A BlockTransactionResponse contains information about a block transaction. + */ +export interface RosettaBlockTransactionResponse { + transaction: RosettaTransaction; +} + +/** + * Transactions contain an array of Operations that are attributable to the same TransactionIdentifier. + */ +export interface RosettaTransaction { + transaction_identifier: TransactionIdentifier; + /** + * List of operations + */ + operations: RosettaOperation[]; + /** + * Transactions that are related to other transactions (like a cross-shard transaction) should include the tranaction_identifier of these transactions in the metadata. + */ + metadata?: { + /** + * STX token transfer memo. + */ + memo?: string; + /** + * The Size + */ + size?: number; + /** + * The locktime + */ + lockTime?: number; + [k: string]: unknown | undefined; + }; +} + +/** + * Operations contain all balance-changing information within a transaction. They are always one-sided (only affect 1 AccountIdentifier) and can succeed or fail independently from a Transaction. + */ +export interface RosettaOperation { + operation_identifier: RosettaOperationIdentifier; + /** + * Restrict referenced related_operations to identifier indexes \< the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree. + */ + related_operations?: RosettaRelatedOperation[]; + /** + * The network-specific type of the operation. Ensure that any type that can be returned here is also specified in the NetworkStatus. This can be very useful to downstream consumers that parse all block data. + */ + type: string; + /** + * The network-specific status of the operation. Status is not defined on the transaction object because blockchains with smart contracts may have transactions that partially apply. Blockchains with atomic transactions (all operations succeed or all operations fail) will have the same status for each operation. + */ + status?: string; + account?: RosettaAccount; + amount?: RosettaAmount; + coin_change?: RosettaCoinChange; + /** + * Operations Meta Data + */ + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * The operation_identifier uniquely identifies an operation within a transaction. + */ +export interface RosettaOperationIdentifier { + /** + * The operation index is used to ensure each operation has a unique identifier within a transaction. This index is only relative to the transaction and NOT GLOBAL. The operations in each transaction should start from index 0. To clarify, there may not be any notion of an operation index in the blockchain being described. + */ + index: number; + /** + * Some blockchains specify an operation index that is essential for client use. For example, Bitcoin uses a network_index to identify which UTXO was used in a transaction. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains). + */ + network_index?: number; +} + +/** + * Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency. + */ +export interface RosettaAmount { + /** + * Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000. + */ + value: string; + currency: RosettaCurrency; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * CoinChange is used to represent a change in state of a some coin identified by a coin_identifier. This object is part of the Operation model and must be populated for UTXO-based blockchains. Coincidentally, this abstraction of UTXOs allows for supporting both account-based transfers and UTXO-based transfers on the same blockchain (when a transfer is account-based, don't populate this model). + */ +export interface RosettaCoinChange { + /** + * CoinIdentifier uniquely identifies a Coin. + */ + coin_identifier: { + /** + * Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index. + */ + identifier: string; + [k: string]: unknown | undefined; + }; + /** + * CoinActions are different state changes that a Coin can undergo. When a Coin is created, it is coin_created. When a Coin is spent, it is coin_spent. It is assumed that a single Coin cannot be created or spent more than once. + */ + coin_action: 'coin_created' | 'coin_spent'; +} + +/** + * Currency is composed of a canonical Symbol and Decimals. This Decimals value is used to convert an Amount.Value from atomic units (Satoshis) to standard units (Bitcoins). + */ +export interface RosettaCurrency { + /** + * Canonical symbol associated with a currency. + */ + symbol: string; + /** + * Number of decimal places in the standard unit representation of the amount. For example, BTC has 8 decimals. Note that it is not possible to represent the value of some currency in atomic units that is not base 10. + */ + decimals: number; + /** + * Any additional information related to the currency itself. For example, it would be useful to populate this object with the contract address of an ERC-20 token. + */ + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * Restrict referenced related_operations to identifier indexes \< the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree. + */ +export interface RosettaRelatedOperation { + /** + * Describes the index of related operation. + */ + index: number; + /** + * Some blockchains specify an operation index that is essential for client use. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains). + */ + network_index?: number; +} + +/** + * + * A ConstructionMetadataRequest is utilized to get information required to construct a transaction. The Options object used to specify which metadata to return is left purposely unstructured to allow flexibility for implementers. Optionally, the request can also include an array of PublicKeys associated with the AccountIdentifiers returned in ConstructionPreprocessResponse. + */ +export interface RosettaConstructionMetadataRequest { + network_identifier: NetworkIdentifier; + options: RosettaOptions; + public_keys?: RosettaPublicKey[]; +} + +/** + * The options that will be sent directly to /construction/metadata by the caller. + */ +export interface RosettaOptions { + /** + * sender's address + */ + sender_address?: string; + /** + * Type of operation e.g transfer + */ + type?: string; + /** + * This value indicates the state of the operations + */ + status?: string; + /** + * Recipient's address + */ + token_transfer_recipient_address?: string; + /** + * Amount to be transfered. + */ + amount?: string; + /** + * Currency symbol e.g STX + */ + symbol?: string; + /** + * Number of decimal places + */ + decimals?: number; + /** + * Maximum price a user is willing to pay. + */ + gas_limit?: number; + /** + * Cost necessary to perform a transaction on the network + */ + gas_price?: number; + /** + * A suggested fee multiplier to indicate that the suggested fee should be scaled. This may be used to set higher fees for urgent transactions or to pay lower fees when there is less urgency. + */ + suggested_fee_multiplier?: number; + /** + * Maximum fee user is willing to pay + */ + max_fee?: string; + /** + * Fee for this transaction + */ + fee?: string; + /** + * Transaction approximative size (used to calculate total fee). + */ + size?: number; + /** + * STX token transfer memo. + */ + memo?: string; + /** + * Number of cycles when stacking. + */ + number_of_cycles?: number; + /** + * Address of the contract to call. + */ + contract_address?: string; + /** + * Name of the contract to call. + */ + contract_name?: string; + /** + * Set the burnchain (BTC) block for stacking lock to start. + */ + burn_block_height?: number; + /** + * The reward cycle ID for stacking transaction. + */ + reward_cycle_id?: number; + /** + * Delegator address for when calling `delegate-stacking`. + */ + delegate_to?: string; + /** + * The reward address for stacking transaction. It should be a valid Bitcoin address + */ + pox_addr?: string; + /** + * The hex-encoded signer key (buff 33) for PoX. + */ + signer_key?: string; + /** + * The hex-encoded signer private key for PoX. Specify either this or `signer_signature`, otherwise the PoX transaction requires allow-listing from the signer. + */ + signer_private_key?: string; + /** + * The hex-encoded signer signature for PoX. Specify either this or `signer_private_key`, otherwise the PoX transaction requires allow-listing from the signer. + */ + signer_signature?: string; + /** + * The maximum amount of STX to stack for PoX. If not specified, the `amount` will be used as the `max-amount` for the PoX transaction. + */ + pox_max_amount?: string; + /** + * The auth ID for the PoX transaction. If not specified, a random value will be generated. + */ + pox_auth_id?: string; +} + +/** + * PublicKey contains a public key byte array for a particular CurveType encoded in hex. Note that there is no PrivateKey struct as this is NEVER the concern of an implementation. + */ +export interface RosettaPublicKey { + /** + * Hex-encoded public key bytes in the format specified by the CurveType. + */ + hex_bytes: string; + /** + * CurveType is the type of cryptographic curve associated with a PublicKey. + */ + curve_type: 'secp256k1' | 'edwards25519'; +} + +/** + * The ConstructionMetadataResponse returns network-specific metadata used for transaction construction. Optionally, the implementer can return the suggested fee associated with the transaction being constructed. The caller may use this info to adjust the intent of the transaction or to create a transaction with a different account that can pay the suggested fee. Suggested fee is an array in case fee payment must occur in multiple currencies. + */ +export interface RosettaConstructionMetadataResponse { + metadata: { + account_sequence?: number; + recent_block_hash?: string; + [k: string]: unknown | undefined; + }; + suggested_fee?: RosettaAmount[]; +} + +/** + * RosettaConstructionPayloadResponse is returned by /construction/payloads. It contains an unsigned transaction blob (that is usually needed to construct the a network transaction from a collection of signatures) and an array of payloads that must be signed by the caller. + */ +export interface RosettaConstructionPayloadResponse { + /** + * This is an unsigned transaction blob (that is usually needed to construct the a network transaction from a collection of signatures) + */ + unsigned_transaction: string; + /** + * An array of payloads that must be signed by the caller + */ + payloads: SigningPayload[]; +} + +/** + * SigningPayload is signed by the client with the keypair associated with an address using the specified SignatureType. SignatureType can be optionally populated if there is a restriction on the signature scheme that can be used to sign the payload. + */ +export interface SigningPayload { + /** + * [DEPRECATED by account_identifier in v1.4.4] The network-specific address of the account that should sign the payload. + */ + address?: string; + account_identifier?: RosettaAccount; + hex_bytes: string; + /** + * SignatureType is the type of a cryptographic signature. + */ + signature_type?: 'ecdsa' | 'ecdsa_recovery' | 'ed25519' | 'schnorr_1' | 'schnorr_poseidon'; +} + +/** + * ConstructionPayloadsRequest is the request to /construction/payloads. It contains the network, a slice of operations, and arbitrary metadata that was returned by the call to /construction/metadata. Optionally, the request can also include an array of PublicKeys associated with the AccountIdentifiers returned in ConstructionPreprocessResponse. + */ +export interface RosettaConstructionPayloadsRequest { + network_identifier: NetworkIdentifier; + operations: RosettaOperation[]; + public_keys?: RosettaPublicKey[]; + metadata?: { + account_sequence?: number; + recent_block_hash?: string; + [k: string]: unknown | undefined; + }; +} + +/** + * ConstructionPreprocessRequest is passed to the /construction/preprocess endpoint so that a Rosetta implementation can determine which metadata it needs to request for construction + */ +export interface RosettaConstructionPreprocessRequest { + network_identifier: NetworkIdentifier; + operations: RosettaOperation[]; + metadata?: { + [k: string]: unknown | undefined; + }; + max_fee?: RosettaMaxFeeAmount[]; + /** + * The caller can also provide a suggested fee multiplier to indicate that the suggested fee should be scaled. This may be used to set higher fees for urgent transactions or to pay lower fees when there is less urgency. It is assumed that providing a very low multiplier (like 0.0001) will never lead to a transaction being created with a fee less than the minimum network fee (if applicable). In the case that the caller provides both a max fee and a suggested fee multiplier, the max fee will set an upper bound on the suggested fee (regardless of the multiplier provided). + */ + suggested_fee_multiplier?: number; +} + +/** + * Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency. + */ +export interface RosettaMaxFeeAmount { + /** + * Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000. + */ + value: string; + currency: RosettaCurrency; + metadata?: { + [k: string]: unknown | undefined; + }; + [k: string]: unknown | undefined; +} + +/** + * RosettaConstructionPreprocessResponse contains options that will be sent unmodified to /construction/metadata. If it is not necessary to make a request to /construction/metadata, options should be omitted. Some blockchains require the PublicKey of particular AccountIdentifiers to construct a valid transaction. To fetch these PublicKeys, populate required_public_keys with the AccountIdentifiers associated with the desired PublicKeys. If it is not necessary to retrieve any PublicKeys for construction, required_public_keys should be omitted. + */ +export interface RosettaConstructionPreprocessResponse { + options?: RosettaOptions; + required_public_keys?: RosettaAccount[]; +} + +/** + * Submit the transaction in blockchain + */ +export interface RosettaConstructionSubmitRequest { + network_identifier: NetworkIdentifier; + /** + * Signed transaction + */ + signed_transaction: string; +} + +/** + * TransactionIdentifier contains the transaction_identifier of a transaction that was submitted to either /construction/submit. + */ +export interface RosettaConstructionSubmitResponse { + transaction_identifier: TransactionIdentifier; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. If the block_identifier is populated, a historical balance query should be performed. + */ +export interface RosettaAccountBalanceRequest { + network_identifier: NetworkIdentifier; + account_identifier: RosettaAccount; + block_identifier?: RosettaPartialBlockIdentifier; +} + +/** + * A BlockRequest is utilized to make a block request on the /block endpoint. + */ +export interface RosettaBlockRequest { + network_identifier: NetworkIdentifier; + block_identifier: RosettaPartialBlockIdentifier; +} + +/** + * Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields. + */ +export interface RosettaErrorNoDetails { + /** + * Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code. + */ + code: number; + /** + * Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field. + */ + message: string; + /** + * An error is retriable if the same request may succeed if submitted again. + */ + retriable: boolean; +} + +/** + * A MempoolTransactionRequest is utilized to retrieve a transaction from the mempool. + */ +export interface RosettaMempoolTransactionRequest { + network_identifier: NetworkIdentifier; + transaction_identifier: TransactionIdentifier; +} + +/** + * This endpoint returns a list of NetworkIdentifiers that the Rosetta server supports. + */ +export interface RosettaNetworkListRequest { + /** + * A MetadataRequest is utilized in any request where the only argument is optional metadata. + */ + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * This endpoint returns the version information and allowed network-specific types for a NetworkIdentifier. Any NetworkIdentifier returned by /network/list should be accessible here. Because options are retrievable in the context of a NetworkIdentifier, it is possible to define unique options for each network. + */ +export interface RosettaOptionsRequest { + network_identifier: NetworkIdentifier; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * This endpoint returns the current status of the network requested. Any NetworkIdentifier returned by /network/list should be accessible here. + */ +export interface RosettaStatusRequest { + network_identifier: NetworkIdentifier; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * Blocks contain an array of Transactions that occurred at a particular BlockIdentifier. A hard requirement for blocks returned by Rosetta implementations is that they MUST be inalterable: once a client has requested and received a block identified by a specific BlockIndentifier, all future calls for that same BlockIdentifier must return the same block contents. + */ +export interface RosettaBlock { + block_identifier: RosettaBlockIdentifier; + parent_block_identifier: RosettaParentBlockIdentifier; + /** + * The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second. + */ + timestamp: number; + /** + * All the transactions in the block + */ + transactions: RosettaTransaction[]; + /** + * meta data + */ + metadata: { + burn_block_height: number; + [k: string]: unknown | undefined; + }; +} + +/** + * The block_identifier uniquely identifies a block in a particular network. + */ +export type RosettaBlockIdentifier = RosettaBlockIdentifierHash & RosettaBlockIdentifierHeight; + +/** + * The block_identifier uniquely identifies a block in a particular network. + */ +export interface RosettaParentBlockIdentifier { + /** + * This is also known as the block height. + */ + index: number; + /** + * Block hash + */ + hash: string; +} + +/** + * An AccountBalanceResponse is returned on the /account/balance endpoint. If an account has a balance for each AccountIdentifier describing it (ex: an ERC-20 token balance on a few smart contracts), an account balance request must be made with each AccountIdentifier. + */ +export interface RosettaAccountBalanceResponse { + block_identifier: RosettaBlockIdentifier; + /** + * A single account balance may have multiple currencies + */ + balances: RosettaAmount[]; + /** + * If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs. + */ + coins?: RosettaCoin[]; + /** + * Account-based blockchains that utilize a nonce or sequence number should include that number in the metadata. This number could be unique to the identifier or global across the account address. + */ + metadata?: { + sequence_number: number; + [k: string]: unknown | undefined; + }; +} + +/** + * If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs. + */ +export interface RosettaCoin { + /** + * CoinIdentifier uniquely identifies a Coin. + */ + coin_identifier: { + /** + * Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index. + */ + identifier: string; + }; + amount: RosettaAmount; +} + +/** + * A BlockResponse includes a fully-populated block or a partially-populated block with a list of other transactions to fetch (other_transactions). As a result of the consensus algorithm of some blockchains, blocks can be omitted (i.e. certain block indexes can be skipped). If a query for one of these omitted indexes is made, the response should not include a Block object. It is VERY important to note that blocks MUST still form a canonical, connected chain of blocks where each block has a unique index. In other words, the PartialBlockIdentifier of a block after an omitted block should reference the last non-omitted block. + */ +export interface RosettaBlockResponse { + block?: RosettaBlock; + /** + * Some blockchains may require additional transactions to be fetched that weren't returned in the block response (ex: block only returns transaction hashes). For blockchains with a lot of transactions in each block, this can be very useful as consumers can concurrently fetch all transactions returned. + */ + other_transactions?: OtherTransactionIdentifier[]; +} + +/** + * The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool. + */ +export interface OtherTransactionIdentifier { + /** + * Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier. + */ + hash: string; +} + +/** + * The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated). + */ +export interface RosettaAccountIdentifier { + /** + * The address may be a cryptographic public key (or some encoding of it) or a provided username. + */ + address: string; + sub_account?: RosettaSubAccount; + /** + * Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata. + */ + metadata?: { + [k: string]: unknown | undefined; + }; + [k: string]: unknown | undefined; +} + +/** + * RosettaConstructionCombineRequest is the input to the /construction/combine endpoint. It contains the unsigned transaction blob returned by /construction/payloads and all required signatures to create a network transaction. + */ +export interface RosettaConstructionCombineRequest { + network_identifier: NetworkIdentifier; + unsigned_transaction: string; + signatures: RosettaSignature[]; +} + +/** + * Signature contains the payload that was signed, the public keys of the keypairs used to produce the signature, the signature (encoded in hex), and the SignatureType. PublicKey is often times not known during construction of the signing payloads but may be needed to combine signatures properly. + */ +export interface RosettaSignature { + signing_payload: SigningPayload; + public_key: RosettaPublicKey; + signature_type: SignatureType; + hex_bytes: string; +} + +/** + * SignatureType is the type of a cryptographic signature. + */ +export type SignatureType = + | 'ecdsa' + | 'ecdsa_recovery' + | 'ed25519' + | 'schnorr_1' + | 'schnorr_poseidon'; + +/** + * RosettaConstructionCombineResponse is returned by /construction/combine. The network payload will be sent directly to the construction/submit endpoint. + */ +export interface RosettaConstructionCombineResponse { + /** + * Signed transaction bytes in hex + */ + signed_transaction: string; +} + +/** + * ConstructionDeriveResponse is returned by the /construction/derive endpoint. + */ +export interface RosettaConstructionDeriveResponse { + /** + * [DEPRECATED by account_identifier in v1.4.4] Address in network-specific format. + */ + address?: string; + account_identifier?: RosettaAccountIdentifier; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * TransactionHash returns the network-specific transaction hash for a signed transaction. + */ +export interface RosettaConstructionHashRequest { + network_identifier: NetworkIdentifier; + /** + * Signed transaction + */ + signed_transaction: string; +} + +/** + * TransactionIdentifier contains the transaction_identifier of a transaction that was submitted to either /construction/hash or /construction/submit. + */ +export interface RosettaConstructionHashResponse { + transaction_identifier: TransactionIdentifier; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * RosettaConstructionParseResponse contains an array of operations that occur in a transaction blob. This should match the array of operations provided to /construction/preprocess and /construction/payloads. + */ +export interface RosettaConstructionParseResponse { + operations: RosettaOperation[]; + /** + * [DEPRECATED by account_identifier_signers in v1.4.4] All signers (addresses) of a particular transaction. If the transaction is unsigned, it should be empty. + */ + signers?: string[]; + account_identifier_signers?: RosettaAccountIdentifier[]; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields. + */ +export interface RosettaError { + /** + * Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code. + */ + code: number; + /** + * Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field. + */ + message: string; + /** + * An error is retriable if the same request may succeed if submitted again. + */ + retriable: boolean; + /** + * Often times it is useful to return context specific to the request that caused the error (i.e. a sample of the stack trace or impacted account) in addition to the standard error message. + */ + details?: { + address?: string; + error?: string; + [k: string]: unknown | undefined; + }; +} + +/** + * A MempoolResponse contains all transaction identifiers in the mempool for a particular network_identifier. + */ +export interface RosettaMempoolResponse { + transaction_identifiers: TransactionIdentifier[]; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * A MempoolTransactionResponse contains an estimate of a mempool transaction. It may not be possible to know the full impact of a transaction in the mempool (ex: fee paid). + */ +export interface RosettaMempoolTransactionResponse { + transaction: RosettaTransaction; + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * A NetworkListResponse contains all NetworkIdentifiers that the node can serve information for. + */ +export interface RosettaNetworkListResponse { + /** + * The network_identifier specifies which network a particular object is associated with. + */ + network_identifiers: NetworkIdentifier[]; +} + +/** + * NetworkOptionsResponse contains information about the versioning of the node and the allowed operation statuses, operation types, and errors. + */ +export interface RosettaNetworkOptionsResponse { + /** + * The Version object is utilized to inform the client of the versions of different components of the Rosetta implementation. + */ + version: { + /** + * The rosetta_version is the version of the Rosetta interface the implementation adheres to. This can be useful for clients looking to reliably parse responses. + */ + rosetta_version: string; + /** + * The node_version is the canonical version of the node runtime. This can help clients manage deployments. + */ + node_version: string; + /** + * When a middleware server is used to adhere to the Rosetta interface, it should return its version here. This can help clients manage deployments. + */ + middleware_version?: string; + /** + * Any other information that may be useful about versioning of dependent services should be returned here. + */ + metadata?: { + [k: string]: unknown | undefined; + }; + }; + /** + * Allow specifies supported Operation status, Operation types, and all possible error statuses. This Allow object is used by clients to validate the correctness of a Rosetta Server implementation. It is expected that these clients will error if they receive some response that contains any of the above information that is not specified here. + */ + allow: { + /** + * All Operation.Status this implementation supports. Any status that is returned during parsing that is not listed here will cause client validation to error. + */ + operation_statuses: RosettaOperationStatus[]; + /** + * All Operation.Type this implementation supports. Any type that is returned during parsing that is not listed here will cause client validation to error. + */ + operation_types: string[]; + /** + * All Errors that this implementation could return. Any error that is returned during parsing that is not listed here will cause client validation to error. + */ + errors: RosettaErrorNoDetails[]; + /** + * Any Rosetta implementation that supports querying the balance of an account at any height in the past should set this to true. + */ + historical_balance_lookup: boolean; + }; +} + +/** + * OperationStatus is utilized to indicate which Operation status are considered successful. + */ +export interface RosettaOperationStatus { + /** + * The status is the network-specific status of the operation. + */ + status: string; + /** + * An Operation is considered successful if the Operation.Amount should affect the Operation.Account. Some blockchains (like Bitcoin) only include successful operations in blocks but other blockchains (like Ethereum) include unsuccessful operations that incur a fee. To reconcile the computed balance from the stream of Operations, it is critical to understand which Operation.Status indicate an Operation is successful and should affect an Account. + */ + successful: boolean; +} + +/** + * NetworkStatusResponse contains basic information about the node's view of a blockchain network. It is assumed that any BlockIdentifier.Index less than or equal to CurrentBlockIdentifier.Index can be queried. If a Rosetta implementation prunes historical state, it should populate the optional oldest_block_identifier field with the oldest block available to query. If this is not populated, it is assumed that the genesis_block_identifier is the oldest queryable block. If a Rosetta implementation performs some pre-sync before it is possible to query blocks, sync_status should be populated so that clients can still monitor healthiness. Without this field, it may appear that the implementation is stuck syncing and needs to be terminated. + */ +export interface RosettaNetworkStatusResponse { + current_block_identifier: RosettaBlockIdentifier; + /** + * The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second. + */ + current_block_timestamp: number; + genesis_block_identifier: RosettaGenesisBlockIdentifier; + oldest_block_identifier?: RosettaOldestBlockIdentifier; + sync_status?: RosettaSyncStatus; + /** + * Peers information + */ + peers: RosettaPeers[]; + /** + * The latest burn block height + */ + current_burn_block_height: number; +} + +/** + * The block_identifier uniquely identifies a block in a particular network. + */ +export interface RosettaGenesisBlockIdentifier { + /** + * This is also known as the block height. + */ + index: number; + /** + * Block hash + */ + hash: string; +} + +/** + * The block_identifier uniquely identifies a block in a particular network. + */ +export interface RosettaOldestBlockIdentifier { + /** + * This is also known as the block height. + */ + index: number; + /** + * Block hash + */ + hash: string; +} + +/** + * SyncStatus is used to provide additional context about an implementation's sync status. It is often used to indicate that an implementation is healthy when it cannot be queried until some sync phase occurs. If an implementation is immediately queryable, this model is often not populated. + */ +export interface RosettaSyncStatus { + /** + * CurrentIndex is the index of the last synced block in the current stage. + */ + current_index: number; + /** + * TargetIndex is the index of the block that the implementation is attempting to sync to in the current stage. + */ + target_index?: number; + /** + * Stage is the phase of the sync process. + */ + stage?: string; + /** + * Synced indicates if an implementation has synced up to the most recent block. + */ + synced?: boolean; +} + +/** + * A Peer is a representation of a node's peer. + */ +export interface RosettaPeers { + /** + * peer id + */ + peer_id: string; + /** + * meta data + */ + metadata?: { + [k: string]: unknown | undefined; + }; +} + +/** + * Parse is called on both unsigned and signed transactions to understand the intent of the formulated transaction. This is run as a sanity check before signing (after /construction/payloads) and before broadcast (after /construction/combine). + */ +export interface RosettaConstructionParseRequest { + network_identifier: NetworkIdentifier; + /** + * Signed is a boolean indicating whether the transaction is signed. + */ + signed: boolean; + /** + * This must be either the unsigned transaction blob returned by /construction/payloads or the signed transaction blob returned by /construction/combine. + */ + transaction: string; +} + +/** + * Network is provided in the request because some blockchains have different address formats for different networks + */ +export interface RosettaConstructionDeriveRequest { + network_identifier: NetworkIdentifier; + public_key: RosettaPublicKey; + metadata?: { + [k: string]: unknown | undefined; + }; +} +/** + * Get all Transaction Identifiers in the mempool + */ +export interface RosettaMempoolRequest { + network_identifier: NetworkIdentifier; + metadata?: { + [k: string]: unknown | undefined; + }; +} diff --git a/src/test-utils/test-helpers.ts b/src/test-utils/test-helpers.ts index 28a13ae76..cd1350e0b 100644 --- a/src/test-utils/test-helpers.ts +++ b/src/test-utils/test-helpers.ts @@ -3,7 +3,6 @@ import { bytesToHex, hexToBytes } from '@stacks/common'; import { StacksNetwork } from '@stacks/network'; import { decodeBtcAddress, poxAddressToBtcAddress } from '@stacks/stacking'; import { - AddressStxBalanceResponse, NetworkIdentifier, RosettaAccountBalanceRequest, RosettaAccountBalanceResponse, @@ -18,8 +17,7 @@ import { RosettaConstructionSubmitRequest, RosettaConstructionSubmitResponse, RosettaOperation, - ServerStatusResponse, -} from '@stacks/stacks-blockchain-api-types'; +} from '../rosetta/types'; import { bufferCV, ChainID, @@ -53,6 +51,8 @@ import { b58ToC32 } from 'c32check'; import { coerceToBuffer, hexToBuffer, runMigrations, timeout } from '@hirosystems/api-toolkit'; import { MIGRATIONS_DIR } from '../datastore/pg-store'; import { getConnectionArgs } from '../datastore/connection'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; +import { ServerStatusResponse } from '../api/schemas/responses/responses'; export async function migrate(direction: 'up' | 'down') { await runMigrations(MIGRATIONS_DIR, direction, getConnectionArgs()); @@ -397,9 +397,7 @@ export async function standByForAccountUnlock(address: string): Promise { const poxInfo = await testEnv.client.getPox(); const info = await testEnv.client.getInfo(); const accountInfo = await testEnv.client.getAccount(address); - const addrBalance = await fetchGet( - `/extended/v1/address/${address}/stx` - ); + const addrBalance = await fetchGet(`/extended/v1/address/${address}/stx`); const status = await fetchGet('/extended/v1/status'); console.log({ poxInfo, diff --git a/src/tests-2.5/block-zero-handling.ts b/src/tests-2.5/block-zero-handling.ts index 7d24e811b..542cf7571 100644 --- a/src/tests-2.5/block-zero-handling.ts +++ b/src/tests-2.5/block-zero-handling.ts @@ -1,19 +1,14 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { - Block, - CoinbaseTransaction, - SmartContractTransaction, - TokenTransferTransaction, - Transaction, - TransactionEvent, - TransactionEventSmartContractLog, - TransactionEventsResponse, - TransactionEventStxAsset, -} from '@stacks/stacks-blockchain-api-types'; import * as supertest from 'supertest'; import { BlockQueryResult } from '../datastore/common'; import { parseBlockQueryResult } from '../datastore/helpers'; import { standByUntilBlock, testEnv } from '../test-utils/test-helpers'; +import { + CoinbaseTransaction, + SmartContractTransaction, + Transaction, +} from '../api/schemas/entities/transactions'; +import { Block } from '../api/schemas/entities/block'; describe('Block-zero event handling', () => { const testnetBootAddr = 'ST000000000000000000002AMW42H'; @@ -126,20 +121,18 @@ describe('Block-zero event handling', () => { )[0] as SmartContractTransaction; expect(genesisContractTx).toBeDefined(); - const genesisLogEvent: TransactionEventSmartContractLog[] = [ + const genesisLogEvent = [ { event_index: 0, event_type: 'smart_contract_log', tx_id: genesisContractTx.tx_id, - contract_log: expect.objectContaining({ + contract_log: expect.objectContaining({ contract_id: genesisContractID, topic: 'print', - value: expect.objectContaining( - { - hex: expect.stringContaining('0x'), - repr: expect.stringContaining('share CPU power with Bitcoin'), - } - ), + value: expect.objectContaining({ + hex: expect.stringContaining('0x'), + repr: expect.stringContaining('share CPU power with Bitcoin'), + }), }), }, ]; @@ -150,22 +143,20 @@ describe('Block-zero event handling', () => { const contractEventsRes = await supertest(testEnv.api.server) .get(`/extended/v1/contract/${genesisContractID}/events`) .expect(200); - const contractEvents = contractEventsRes.body as TransactionEventsResponse; + const contractEvents = contractEventsRes.body; expect(contractEvents.results).toEqual(genesisLogEvent); }); test('Genesis STX mint events', async () => { // One of the boot txs is a special "token_transfer" type that includes `stx_asset` mint events for seeding boot accounts - const genesisStxMintTx = blockOneTxs.filter( - tx => tx.tx_type === 'token_transfer' - )[0] as TokenTransferTransaction; + const genesisStxMintTx = blockOneTxs.filter(tx => tx.tx_type === 'token_transfer')[0]; expect(genesisStxMintTx).toBeDefined(); - const stxMintEvent: TransactionEventStxAsset = { + const stxMintEvent = { event_index: 0, event_type: 'stx_asset', tx_id: genesisStxMintTx.tx_id, - asset: expect.objectContaining({ + asset: expect.objectContaining({ asset_event_type: 'mint', sender: '', recipient: expect.stringMatching(/^S/), // any stacks address @@ -180,10 +171,8 @@ describe('Block-zero event handling', () => { .get(`/extended/v1/tx/events`) .query({ tx_id: genesisStxMintTx.tx_id, limit: 50 }) .expect(200); - const mintTxEvents = mintTxEventsRes.body.events as TransactionEvent[]; - const firstMintEvent = mintTxEvents.filter( - r => r.event_index === 0 - )[0] as TransactionEventStxAsset; + const mintTxEvents = mintTxEventsRes.body.events as any[]; + const firstMintEvent = mintTxEvents.filter(r => r.event_index === 0)[0]; expect(firstMintEvent).toBeDefined(); expect(firstMintEvent).toEqual(stxMintEvent); }); diff --git a/src/tests-2.5/faucet-stx.ts b/src/tests-2.5/faucet-stx.ts index 8497adfe8..ce907e61e 100644 --- a/src/tests-2.5/faucet-stx.ts +++ b/src/tests-2.5/faucet-stx.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { RunFaucetResponse, AddressStxBalanceResponse } from '@stacks/stacks-blockchain-api-types'; import * as supertest from 'supertest'; import { Account, @@ -8,6 +7,8 @@ import { standByForTxSuccess, testEnv, } from '../test-utils/test-helpers'; +import { RunFaucetResponse } from '../api/schemas/responses/responses'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; describe('STX Faucet', () => { const reqAccountKey = 'b1ee37d996b1cf95ff67996a38426cff398d3adfeccf8ae8b3651a530837dd5801'; @@ -42,13 +43,13 @@ describe('STX Faucet', () => { }); test('STX faucet tx mined successfully', async () => { - const tx = await standByForTxSuccess(reqTx.txId!); + const tx = await standByForTxSuccess(reqTx.txId); expect(tx.token_transfer_recipient_address).toBe(reqAccount.stxAddr); }); test('STX faucet recipient balance', async () => { // Validate account has balance from API endpoint - const addrBalance = await fetchGet( + const addrBalance = await fetchGet( `/extended/v1/address/${reqAccount.stxAddr}/stx` ); expect(BigInt(addrBalance.balance)).toBeGreaterThan(0n); diff --git a/src/tests-2.5/pox-4-btc-address-formats.ts b/src/tests-2.5/pox-4-btc-address-formats.ts index e6e740829..43c54355e 100644 --- a/src/tests-2.5/pox-4-btc-address-formats.ts +++ b/src/tests-2.5/pox-4-btc-address-formats.ts @@ -1,11 +1,5 @@ import { hexToBuffer, timeout } from '@hirosystems/api-toolkit'; import { StackingClient, decodeBtcAddress } from '@stacks/stacking'; -import { - AddressStxBalanceResponse, - BurnchainRewardListResponse, - BurnchainRewardSlotHolderListResponse, - BurnchainRewardsTotal, -} from '@stacks/stacks-blockchain-api-types'; import { AnchorMode, StacksPrivateKey, @@ -31,6 +25,12 @@ import { import { RPCClient } from 'rpc-bitcoin'; import { hexToBytes } from '@stacks/common'; import { getPublicKeyFromPrivate } from '@stacks/encryption'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; +import { + BurnchainRewardListResponse, + BurnchainRewardSlotHolderListResponse, +} from '../api/schemas/responses/responses'; +import { BurnchainRewardsTotal } from '../api/schemas/entities/burnchain-rewards'; const BTC_PRIVATE_KEY = '0000000000000000000000000000000000000000000000000000000000000002'; @@ -173,7 +173,7 @@ describe.each([P2SH_P2WPKH, P2WPKH, P2WSH, P2TR])( expect(lockEvent.unlock_height).toBe(expectedUnlockHeight); // Test the API address balance data after a `stack-stx` operation - const balance = await fetchGet( + const balance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(balance.locked).toBe(ustxAmount.toString()); @@ -196,7 +196,7 @@ describe.each([P2SH_P2WPKH, P2WPKH, P2WSH, P2TR])( test('stx unlocked - API balance', async () => { // Check that STX are no longer reported as locked by the API endpoints: - const balance = await fetchGet( + const balance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(BigInt(balance.locked)).toBe(0n); diff --git a/src/tests-2.5/pox-4-burnchain-delegate-stx.ts b/src/tests-2.5/pox-4-burnchain-delegate-stx.ts index 66931423c..22b66aa9d 100644 --- a/src/tests-2.5/pox-4-burnchain-delegate-stx.ts +++ b/src/tests-2.5/pox-4-burnchain-delegate-stx.ts @@ -1,11 +1,4 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { - AddressStxBalanceResponse, - ContractCallTransaction, - TransactionEventsResponse, - TransactionEventStxLock, - TransactionResults, -} from '@stacks/stacks-blockchain-api-types'; import { AnchorMode, Cl, @@ -41,6 +34,13 @@ import { PoxContractIdentifier } from '../pox-helpers'; import { ClarityValueUInt, decodeClarityValue } from 'stacks-encoding-native-js'; import { decodeBtcAddress, poxAddressToBtcAddress } from '@stacks/stacking'; import { timeout } from '@hirosystems/api-toolkit'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; +import { ContractCallTransaction } from '../api/schemas/entities/transactions'; +import { + AddressTransactionsListResponse, + TransactionEventsResponse, +} from '../api/schemas/responses/responses'; +import { StxLockTransactionEvent } from '../api/schemas/entities/transaction-events'; // Perform Delegate-STX operation on Bitcoin. // See https://github.com/stacksgov/sips/blob/a7f2e58ec90c12ee1296145562eec75029b89c48/sips/sip-015/sip-015-network-upgrade.md#new-burnchain-transaction-delegate-stx @@ -257,7 +257,7 @@ describe('PoX-4 - Stack using Bitcoin-chain delegate ops', () => { expect(BigInt(coreNodeBalance.locked)).toBe(0n); // test API address endpoint balance - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stxAddr}/stx` ); expect(BigInt(apiBalance.balance)).toBe(testAccountBalance); @@ -449,8 +449,8 @@ describe('PoX-4 - Stack using Bitcoin-chain delegate ops', () => { const delegatorAddressEventsResp = await supertest(api.server) .get(`/extended/v1/tx/events?address=${delegatorAccount.stxAddr}`) .expect(200); - const addressEvents = addressEventsResp.body.events as TransactionEventsResponse['results']; - const event1 = addressEvents[0] as TransactionEventStxLock; + const addressEvents = addressEventsResp.body.events as TransactionEventsResponse['events']; + const event1 = addressEvents[0] as StxLockTransactionEvent; expect(event1.event_type).toBe('stx_lock'); expect(event1.stx_lock_event.locked_address).toBe(account.stxAddr); expect(event1.stx_lock_event.unlock_height).toBeGreaterThan(0); @@ -460,7 +460,7 @@ describe('PoX-4 - Stack using Bitcoin-chain delegate ops', () => { const addrTxsReq = await supertest(api.server) .get(`/extended/v1/address/${account.stxAddr}/transactions`) .expect(200); - const addrTxs = addrTxsReq.body as TransactionResults; + const addrTxs = addrTxsReq.body as AddressTransactionsListResponse; const txObj = addrTxs.results.find( tx => tx.sender_address === account.stxAddr ) as ContractCallTransaction; diff --git a/src/tests-2.5/pox-4-burnchain-stack-stx.ts b/src/tests-2.5/pox-4-burnchain-stack-stx.ts index 6e8a2848f..023949063 100644 --- a/src/tests-2.5/pox-4-burnchain-stack-stx.ts +++ b/src/tests-2.5/pox-4-burnchain-stack-stx.ts @@ -1,10 +1,4 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { - AddressStxBalanceResponse, - ContractCallTransaction, - TransactionEventsResponse, - TransactionEventStxLock, -} from '@stacks/stacks-blockchain-api-types'; import { AnchorMode, boolCV, @@ -40,6 +34,10 @@ import { ClarityValueUInt, decodeClarityValue } from 'stacks-encoding-native-js' import { decodeBtcAddress, poxAddressToTuple } from '@stacks/stacking'; import { timeout } from '@hirosystems/api-toolkit'; import { hexToBytes } from '@stacks/common'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; +import { TransactionEventsResponse } from '../api/schemas/responses/responses'; +import { StxLockTransactionEvent } from '../api/schemas/entities/transaction-events'; +import { ContractCallTransaction } from '../api/schemas/entities/transactions'; // Perform Stack-STX operation on Bitcoin. // See https://github.com/stacksgov/sips/blob/0da29c6911c49c45e4125dbeaed58069854591eb/sips/sip-007/sip-007-stacking-consensus.md#stx-operations-on-bitcoin @@ -225,7 +223,7 @@ describe('PoX-4 - Stack using Bitcoin-chain stack ops', () => { expect(BigInt(coreNodeBalance.locked)).toBe(0n); // test API address endpoint balance - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stxAddr}/stx` ); expect(BigInt(apiBalance.balance)).toBe(testAccountBalance); @@ -337,8 +335,8 @@ describe('PoX-4 - Stack using Bitcoin-chain stack ops', () => { const addressEventsResp = await supertest(api.server) .get(`/extended/v1/tx/events?address=${account.stxAddr}`) .expect(200); - const addressEvents = addressEventsResp.body.events as TransactionEventsResponse['results']; - const event1 = addressEvents[0] as TransactionEventStxLock; + const addressEvents = addressEventsResp.body.events as TransactionEventsResponse['events']; + const event1 = addressEvents[0] as StxLockTransactionEvent; expect(event1.event_type).toBe('stx_lock'); expect(event1.stx_lock_event.locked_address).toBe(account.stxAddr); expect(event1.stx_lock_event.unlock_height).toBeGreaterThan(0); @@ -377,7 +375,7 @@ describe('PoX-4 - Stack using Bitcoin-chain stack ops', () => { expect(BigInt(coreNodeBalance.locked)).toBe(testStackAmount); // test API address endpoint balance - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stxAddr}/stx` ); expect(BigInt(apiBalance.balance)).toBeLessThan(testAccountBalance); diff --git a/src/tests-2.5/pox-4-delegate-aggregation.ts b/src/tests-2.5/pox-4-delegate-aggregation.ts index cd8e27ec0..fdf18d508 100644 --- a/src/tests-2.5/pox-4-delegate-aggregation.ts +++ b/src/tests-2.5/pox-4-delegate-aggregation.ts @@ -34,11 +34,11 @@ import { ClarityValueUInt, decodeClarityValue, } from 'stacks-encoding-native-js'; -import { AddressStxBalanceResponse } from '@stacks/stacks-blockchain-api-types'; import * as assert from 'assert'; import { hexToBytes } from '@stacks/common'; import { StackingClient } from '@stacks/stacking'; import { getPublicKeyFromPrivate } from '@stacks/encryption'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; describe('PoX-4 - Delegate aggregation increase operations', () => { const seedKey = testnetKeys[4].secretKey; @@ -256,7 +256,7 @@ describe('PoX-4 - Delegate aggregation increase operations', () => { ); // validate API balance state - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${delegateeAccount.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(amountStackedInitial)); @@ -458,7 +458,7 @@ describe('PoX-4 - Delegate aggregation increase operations', () => { ); // validate API endpoint balance state for account - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${delegateeAccount.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(BigInt(coreBalanceInfo.locked))); @@ -504,7 +504,7 @@ describe('PoX-4 - Delegate aggregation increase operations', () => { expect(coreBalanceInfo.unlock_height).toBe(0); // validate API endpoint balance state for account - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${delegateeAccount.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(BigInt(coreBalanceInfo.locked))); diff --git a/src/tests-2.5/pox-4-delegate-revoked-stacking.ts b/src/tests-2.5/pox-4-delegate-revoked-stacking.ts index 4c361949e..a1b95660d 100644 --- a/src/tests-2.5/pox-4-delegate-revoked-stacking.ts +++ b/src/tests-2.5/pox-4-delegate-revoked-stacking.ts @@ -1,5 +1,4 @@ import { StackingClient, poxAddressToTuple } from '@stacks/stacking'; -import { AddressStxBalanceResponse } from '@stacks/stacks-blockchain-api-types'; import { AnchorMode, Cl, @@ -32,6 +31,7 @@ import { } from '../test-utils/test-helpers'; import { hexToBytes } from '@stacks/common'; import { getPublicKeyFromPrivate } from '@stacks/encryption'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; describe('PoX-4 - Delegate Revoked Stacking', () => { const seedKey = testnetKeys[4].secretKey; @@ -261,7 +261,7 @@ describe('PoX-4 - Delegate Revoked Stacking', () => { ); // validate API balance state - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${STACKER.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(DELEGATE_HALF_AMOUNT)); @@ -483,7 +483,7 @@ describe('PoX-4 - Delegate Revoked Stacking', () => { expect(coreBalanceInfo.unlock_height).toBe(0); // validate API endpoint balance state for account - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${STACKER.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(BigInt(coreBalanceInfo.locked))); diff --git a/src/tests-2.5/pox-4-delegate-stacking.ts b/src/tests-2.5/pox-4-delegate-stacking.ts index ab965dc89..bd634cff3 100644 --- a/src/tests-2.5/pox-4-delegate-stacking.ts +++ b/src/tests-2.5/pox-4-delegate-stacking.ts @@ -25,11 +25,11 @@ import { uintCV, } from '@stacks/transactions'; import { ClarityValueTuple, ClarityValueUInt } from 'stacks-encoding-native-js'; -import { AddressStxBalanceResponse } from '@stacks/stacks-blockchain-api-types'; import * as assert from 'assert'; import { StackingClient } from '@stacks/stacking'; import { getPublicKeyFromPrivate } from '@stacks/encryption'; import { hexToBytes } from '@stacks/common'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; describe('PoX-4 - Delegate Stacking operations', () => { const seedKey = testnetKeys[4].secretKey; @@ -270,7 +270,7 @@ describe('PoX-4 - Delegate Stacking operations', () => { ); // validate API balance state - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${delegateeAccount.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(amountToDelegateInitial)); @@ -336,7 +336,7 @@ describe('PoX-4 - Delegate Stacking operations', () => { ); // validate API endpoint balance state for account - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${delegateeAccount.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(BigInt(coreBalanceInfo.locked))); @@ -397,7 +397,7 @@ describe('PoX-4 - Delegate Stacking operations', () => { ); // validate API endpoint balance state for account - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${delegateeAccount.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(BigInt(coreBalanceInfo.locked))); @@ -468,7 +468,7 @@ describe('PoX-4 - Delegate Stacking operations', () => { expect(coreBalanceInfo.unlock_height).toBe(0); // validate API endpoint balance state for account - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${delegateeAccount.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(BigInt(coreBalanceInfo.locked))); diff --git a/src/tests-2.5/pox-4-rosetta-btc-addr-types.ts b/src/tests-2.5/pox-4-rosetta-btc-addr-types.ts index a548faa33..b1a611036 100644 --- a/src/tests-2.5/pox-4-rosetta-btc-addr-types.ts +++ b/src/tests-2.5/pox-4-rosetta-btc-addr-types.ts @@ -1,5 +1,4 @@ import { timeout } from '@hirosystems/api-toolkit'; -import { BurnchainRewardSlotHolderListResponse } from '@stacks/stacks-blockchain-api-types'; import { testnetKeys } from '../api/routes/debug'; import { CoreRpcPoxInfo } from '../core-rpc/client'; import { DbTxStatus } from '../datastore/common'; @@ -11,6 +10,7 @@ import { standByUntilBurnBlock, testEnv, } from '../test-utils/test-helpers'; +import { BurnchainRewardSlotHolderListResponse } from '../api/schemas/responses/responses'; const BTC_ADDRESS_CASES = [ { addressFormat: 'p2pkh' }, diff --git a/src/tests-2.5/pox-4-rosetta-segwit.ts b/src/tests-2.5/pox-4-rosetta-segwit.ts index c1ad8e393..8a6a38f9f 100644 --- a/src/tests-2.5/pox-4-rosetta-segwit.ts +++ b/src/tests-2.5/pox-4-rosetta-segwit.ts @@ -1,10 +1,6 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ import { hexToBuffer, timeout } from '@hirosystems/api-toolkit'; import { bytesToHex } from '@stacks/common'; -import { - AddressStxBalanceResponse, - BurnchainRewardListResponse, -} from '@stacks/stacks-blockchain-api-types'; import { AnchorMode, TransactionVersion, @@ -28,6 +24,8 @@ import { standByUntilBurnBlock, testEnv, } from '../test-utils/test-helpers'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; +import { BurnchainRewardListResponse } from '../api/schemas/responses/responses'; describe('PoX-4 - Rosetta - Stacking with segwit', () => { let btcAddr: string; @@ -101,7 +99,7 @@ describe('PoX-4 - Rosetta - Stacking with segwit', () => { expect(BigInt(coreNodeBalance.locked)).toBe(0n); // test API address endpoint balance - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stxAddr}/stx` ); expect(BigInt(apiBalance.balance)).toBe(testAccountBalance); @@ -149,7 +147,7 @@ describe('PoX-4 - Rosetta - Stacking with segwit', () => { expect(BigInt(coreNodeBalance.locked)).toBe(ustxAmount); // test API address endpoint balance - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stxAddr}/stx` ); expect(BigInt(apiBalance.balance)).toBeLessThan(testAccountBalance); @@ -177,7 +175,7 @@ describe('PoX-4 - Rosetta - Stacking with segwit', () => { expect(coreNodeBalance.unlock_height).toBe(0); // verify STX unlocked - API address endpoint balance - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(0n); @@ -268,7 +266,7 @@ describe('PoX-4 - Rosetta - Stacking with segwit', () => { expect(coreNodeBalance.unlock_height).toBeGreaterThan(0); // ensure locked reported by API address endpoint balance - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(ustxAmount); @@ -294,7 +292,7 @@ describe('PoX-4 - Rosetta - Stacking with segwit', () => { expect(BigInt(coreNodeBalance.locked)).toBe(0n); // ensure zero locked reported by API address endpoint balance - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stxAddr}/stx` ); expect(BigInt(apiBalance.locked)).toBe(0n); diff --git a/src/tests-2.5/pox-4-stack-extend-increase.ts b/src/tests-2.5/pox-4-stack-extend-increase.ts index 97e1e7bca..a39f7b96d 100644 --- a/src/tests-2.5/pox-4-stack-extend-increase.ts +++ b/src/tests-2.5/pox-4-stack-extend-increase.ts @@ -1,12 +1,6 @@ import { testnetKeys } from '../api/routes/debug'; import { CoreRpcPoxInfo } from '../core-rpc/client'; import { getBitcoinAddressFromKey, privateToPublicKey } from '../ec-helpers'; -import { - AddressStxBalanceResponse, - BurnchainRewardListResponse, - BurnchainRewardSlotHolderListResponse, - BurnchainRewardsTotal, -} from '@stacks/stacks-blockchain-api-types'; import { AnchorMode, StacksPrivateKey, @@ -31,6 +25,12 @@ import { hexToBuffer } from '@hirosystems/api-toolkit'; import * as assert from 'assert'; import { hexToBytes } from '@stacks/common'; import { getPublicKeyFromPrivate } from '@stacks/encryption'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; +import { + BurnchainRewardListResponse, + BurnchainRewardSlotHolderListResponse, +} from '../api/schemas/responses/responses'; +import { BurnchainRewardsTotal } from '../api/schemas/entities/burnchain-rewards'; describe('PoX-4 - Stack extend and increase operations', () => { const account = testnetKeys[1]; @@ -166,7 +166,7 @@ describe('PoX-4 - Stack extend and increase operations', () => { expect(lockEvent.unlock_height).toBe(expectedUnlockHeight); // Test the API address balance data after a `stack-stx` operation - const addrBalance = await fetchGet( + const addrBalance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(addrBalance.locked).toBe(ustxAmount.toString()); @@ -205,7 +205,7 @@ describe('PoX-4 - Stack extend and increase operations', () => { ); // validate API balance state - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(BigInt(apiBalance.locked)).toBe(ustxAmount); @@ -278,7 +278,7 @@ describe('PoX-4 - Stack extend and increase operations', () => { expect(rpcAccountInfo.unlock_height).toBe(expectedUnlockHeight); // Test the API address balance data after a `stack-increase` operation - const addrBalance = await fetchGet( + const addrBalance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(addrBalance.locked).toBe(expectedLockedAmount.toString()); @@ -316,7 +316,7 @@ describe('PoX-4 - Stack extend and increase operations', () => { ); // validate API balance state - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(BigInt(apiBalance.locked)).toBe(expectedLockedAmount); @@ -393,7 +393,7 @@ describe('PoX-4 - Stack extend and increase operations', () => { expect(rpcAccountInfo.unlock_height).toBe(expectedUnlockHeight); // Test the API address balance data after a `stack-extend` operation - const addrBalance = await fetchGet( + const addrBalance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(addrBalance.burnchain_unlock_height).toBe(expectedUnlockHeight); @@ -430,7 +430,7 @@ describe('PoX-4 - Stack extend and increase operations', () => { ); // validate API balance state - const apiBalance = await fetchGet( + const apiBalance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(BigInt(apiBalance.locked)).toBe(BigInt(coreBalance.locked)); @@ -555,7 +555,7 @@ describe('PoX-4 - Stack extend and increase operations', () => { test('stx unlocked - API balance endpoint', async () => { // Check that STX are no longer reported as locked by the API endpoints: - const addrBalance = await fetchGet( + const addrBalance = await fetchGet( `/extended/v1/address/${account.stacksAddress}/stx` ); expect(BigInt(addrBalance.locked)).toBe(0n); diff --git a/src/tests-bns/api.ts b/src/tests-bns/api.ts index b379839af..5794cac41 100644 --- a/src/tests-bns/api.ts +++ b/src/tests-bns/api.ts @@ -1,6 +1,5 @@ import { ApiServer, startApiServer } from '../api/init'; import * as supertest from 'supertest'; -import { validate } from '../api/rosetta-validate'; import { DbAssetEventTypeId, DbBlock, DbBnsName, DbBnsNamespace, DbBnsSubdomain } from '../datastore/common'; import * as StacksTransactions from '@stacks/transactions'; import { ChainID } from '@stacks/transactions'; @@ -179,15 +178,6 @@ describe('BNS API tests', () => { expect(query1.body.namespaces.length).toBe(2); }); - test('Validate: namespace response schema', async () => { - const query1 = await supertest(api.server).get('/v1/namespaces'); - const result = JSON.parse(query1.text); - const path = - '@stacks/stacks-blockchain-api-types/api/bns/namespace-operations/bns-get-all-namespaces-response.schema.json'; - const valid = await validate(path, result); - expect(valid.valid).toBe(true); - }); - test('Validate: namespaces returned length', async () => { const query1 = await supertest(api.server).get('/v1/namespaces'); const result = JSON.parse(query1.text); @@ -246,15 +236,6 @@ describe('BNS API tests', () => { expect(result[0]).toBe('xyz.abc'); }); - test('Success: namespaces/{namespace}/name schema', async () => { - const query1 = await supertest(api.server).get('/v1/namespaces/abc/names'); - const result = JSON.parse(query1.text); - const path = - '@stacks/stacks-blockchain-api-types/api/bns/namespace-operations/bns-get-all-namespaces-names-response.schema.json'; - const valid = await validate(path, result); - expect(valid.valid).toBe(true); - }); - test('Invalid page for names', async () => { const query1 = await supertest(api.server).get(`/v1/namespaces/abc/names?page=1`); expect(query1.status).toBe(400); @@ -286,24 +267,6 @@ describe('BNS API tests', () => { expect(JSON.parse(query1.text).amount).toBe('6'); }); - test('Success: validate namespace price schema', async () => { - const query1 = await supertest(api.server).get(`/v2/prices/namespaces/abc`); - const result = JSON.parse(query1.text); - const path = - '@stacks/stacks-blockchain-api-types/api/bns/namespace-operations/bns-get-namespace-price-response.schema.json'; - const valid = await validate(path, result); - expect(valid.valid).toBe(true); - }); - - test('Success: validate name price schema', async () => { - const query1 = await supertest(api.server).get(`/v2/prices/names/test.abc`); - const result = JSON.parse(query1.text); - const path = - '@stacks/stacks-blockchain-api-types/api/bns/name-querying/bns-get-name-price-response.schema.json'; - const valid = await validate(path, result); - expect(valid.valid).toBe(true); - }); - test('Fail names price invalid name', async () => { // if name is without dot const query1 = await supertest(api.server).get(`/v2/prices/names/withoutdot`); @@ -937,15 +900,6 @@ describe('BNS API tests', () => { expect(query2.body.length).toBe(1); }); - test('Validate: names response schema', async () => { - const query1 = await supertest(api.server).get('/v1/names'); - const result = JSON.parse(query1.text); - const path = - '@stacks/stacks-blockchain-api-types/api/bns/name-querying/bns-get-all-names-response.schema.json'; - const valid = await validate(path, result); - expect(valid.valid).toBe(true); - }); - test('Invalid page from /v1/names', async () => { const query1 = await supertest(api.server).get('/v1/names?page=1'); expect(query1.status).toBe(400); @@ -974,15 +928,6 @@ describe('BNS API tests', () => { expect(query2.status).toBe(404); }); - test('Validate: name info response schema', async () => { - const query1 = await supertest(api.server).get('/v1/names/xyz.abc'); - const result = JSON.parse(query1.text); - const path = - '@stacks/stacks-blockchain-api-types/api/bns/name-querying/bns-get-name-info.response.schema.json'; - const valid = await validate(path, result); - expect(valid.valid).toBe(true); - }); - test('Failure: name info', async () => { const query1 = await supertest(api.server).get(`/v1/names/testname`); expect(query1.status).toBe(404); diff --git a/src/tests-rosetta-construction/construction.ts b/src/tests-rosetta-construction/construction.ts index 3797c2bfa..cc7fe4f75 100644 --- a/src/tests-rosetta-construction/construction.ts +++ b/src/tests-rosetta-construction/construction.ts @@ -16,7 +16,7 @@ import { RosettaConstructionPayloadsRequest, RosettaConstructionPreprocessRequest, RosettaConstructionPreprocessResponse, -} from '@stacks/stacks-blockchain-api-types'; +} from '../rosetta/types'; import { AnchorMode, AuthType, diff --git a/src/tests-rosetta/api.ts b/src/tests-rosetta/api.ts index 8c537a9c6..93e108830 100644 --- a/src/tests-rosetta/api.ts +++ b/src/tests-rosetta/api.ts @@ -19,7 +19,7 @@ import { RosettaNetworkStatusResponse, RosettaOperation, RosettaTransaction, -} from '@stacks/stacks-blockchain-api-types'; +} from '../rosetta/types'; import { RosettaErrors, RosettaOperationType, diff --git a/src/tests-rosetta/offline-api-tests.ts b/src/tests-rosetta/offline-api-tests.ts index f0de20d17..1ebdadb7b 100644 --- a/src/tests-rosetta/offline-api-tests.ts +++ b/src/tests-rosetta/offline-api-tests.ts @@ -37,7 +37,7 @@ import { RosettaConstructionPreprocessRequest, RosettaConstructionPreprocessResponse, RosettaConstructionMetadataResponse, -} from '@stacks/stacks-blockchain-api-types'; +} from '../rosetta/types'; import { getRosettaNetworkName, RosettaConstants, diff --git a/src/tests-subnets/subnet-tests.ts b/src/tests-subnets/subnet-tests.ts index 99e1814ee..8d3d55213 100644 --- a/src/tests-subnets/subnet-tests.ts +++ b/src/tests-subnets/subnet-tests.ts @@ -1,10 +1,4 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { - TransactionResults, - TokenTransferTransaction, - TransactionEventsResponse, - ContractCallTransaction, -} from '@stacks/stacks-blockchain-api-types'; import * as supertest from 'supertest'; import { standByForTxSuccess, @@ -33,6 +27,8 @@ import { StacksCoreRpcClient } from '../core-rpc/client'; import { StacksTestnet } from '@stacks/network'; import { ClarityTypeID, decodeClarityValue } from 'stacks-encoding-native-js'; import { timeout } from '@hirosystems/api-toolkit'; +import { TransactionEventsResponse, TransactionResults } from '../api/schemas/responses/responses'; +import { ContractCallTransaction } from '../api/schemas/entities/transactions'; describe('Subnets tests', () => { let l1Client: StacksCoreRpcClient; @@ -335,7 +331,7 @@ describe('Subnets tests', () => { const respEvents = await supertest(testEnv.api.server) .get(`/extended/v1/tx/events?tx_id=${tx.tx_id}`) .expect(200); - const txEvents = respEvents.body.events as TransactionEventsResponse['results']; + const txEvents = respEvents.body.events as TransactionEventsResponse['events']; expect(txEvents).toEqual([ { contract_log: { @@ -464,7 +460,7 @@ describe('Subnets tests', () => { const respEvents = await supertest(testEnv.api.server) .get(`/extended/v1/tx/events?tx_id=${tx.tx_id}`) .expect(200); - const txEvents = respEvents.body.events as TransactionEventsResponse['results']; + const txEvents = respEvents.body.events as TransactionEventsResponse['events']; expect(txEvents).toEqual([ { asset: { @@ -768,7 +764,7 @@ describe('Subnets tests', () => { const respEvents = await supertest(testEnv.api.server) .get(`/extended/v1/tx/events?tx_id=${tx.tx_id}`) .expect(200); - const txEvents = respEvents.body.events as TransactionEventsResponse['results']; + const txEvents = respEvents.body.events as TransactionEventsResponse['events']; expect(txEvents).toEqual([ { contract_log: { @@ -898,7 +894,7 @@ describe('Subnets tests', () => { const respEvents = await supertest(testEnv.api.server) .get(`/extended/v1/tx/events?tx_id=${tx.tx_id}`) .expect(200); - const txEvents = respEvents.body.events as TransactionEventsResponse['results']; + const txEvents = respEvents.body.events as TransactionEventsResponse['events']; expect(txEvents).toEqual([ { asset: { @@ -1114,7 +1110,7 @@ describe('Subnets tests', () => { .get(`/extended/v1/tx?limit=1&type=token_transfer`) .expect(200); const txListResp = resp.body as TransactionResults; - const tx = txListResp.results[0] as TokenTransferTransaction; + const tx = txListResp.results[0]; expect(tx).toEqual( expect.objectContaining({ anchor_mode: 'any', @@ -1144,7 +1140,7 @@ describe('Subnets tests', () => { const respEvents = await supertest(testEnv.api.server) .get(`/extended/v1/tx/events?tx_id=${tx.tx_id}`) .expect(200); - const txEvents = respEvents.body.events as TransactionEventsResponse['results']; + const txEvents = respEvents.body.events as TransactionEventsResponse['events']; expect(txEvents).toEqual([ { asset: { diff --git a/src/tests/block-tests.ts b/src/tests/block-tests.ts index 9dc6a2e2e..625d72980 100644 --- a/src/tests/block-tests.ts +++ b/src/tests/block-tests.ts @@ -14,7 +14,6 @@ import { TestBlockBuilder, TestMicroblockStreamBuilder } from '../test-utils/tes import { PgWriteStore } from '../datastore/pg-write-store'; import { PgSqlClient, bufferToHex } from '@hirosystems/api-toolkit'; import { migrate } from '../test-utils/test-helpers'; -import { AverageBlockTimesResponse } from '@stacks/stacks-blockchain-api-types'; describe('block tests', () => { let db: PgWriteStore; @@ -858,7 +857,7 @@ describe('block tests', () => { } const fetch = await supertest(api.server).get(`/extended/v2/blocks/average-times`); - const response: AverageBlockTimesResponse = fetch.body; + const response = fetch.body; expect(fetch.status).toBe(200); // All block time averages should be about 30 minutes diff --git a/src/tests/microblock-tests.ts b/src/tests/microblock-tests.ts index 535819185..1779b3da7 100644 --- a/src/tests/microblock-tests.ts +++ b/src/tests/microblock-tests.ts @@ -21,18 +21,20 @@ import { import { startApiServer } from '../api/init'; import { httpPostRequest, I32_MAX } from '../helpers'; import { - AddressStxBalanceResponse, + ContractCallTransaction, + MempoolTransaction, + Transaction, +} from '../api/schemas/entities/transactions'; +import { AddressStxInboundListResponse, AddressTransactionsListResponse, AddressTransactionsWithTransfersListResponse, - ContractCallTransaction, - MempoolTransaction, MempoolTransactionListResponse, - Microblock, MicroblockListResponse, - Transaction, TransactionResults, -} from '@stacks/stacks-blockchain-api-types'; +} from '../api/schemas/responses/responses'; +import { Microblock } from '../api/schemas/entities/microblock'; +import { AddressStxBalance } from '../api/schemas/entities/addresses'; import { useWithCleanup } from './test-helpers'; import { startEventServer } from '../event-stream/event-server'; import * as fs from 'fs'; @@ -682,14 +684,14 @@ describe('microblock tests', () => { expect(addrTxsBody2.results[0].tx_id).toBe(mbTx2.tx_id); const addrBalance1 = await supertest(api.server).get(`/extended/v1/address/${addr2}/stx`); - const { body: addrBalanceBody1 }: { body: AddressStxBalanceResponse } = addrBalance1; + const { body: addrBalanceBody1 }: { body: AddressStxBalance } = addrBalance1; expect(addrBalanceBody1.balance).toBe('0'); expect(addrBalanceBody1.total_received).toBe('0'); const addrBalance2 = await supertest(api.server).get( `/extended/v1/address/${addr2}/stx?unanchored` ); - const { body: addrBalanceBody2 }: { body: AddressStxBalanceResponse } = addrBalance2; + const { body: addrBalanceBody2 }: { body: AddressStxBalance } = addrBalance2; expect(addrBalanceBody2.balance).toBe(mbTxStxEvent1.amount.toString()); expect(addrBalanceBody2.total_received).toBe(mbTxStxEvent1.amount.toString()); diff --git a/src/tests/other-tests.ts b/src/tests/other-tests.ts index 2656530d8..b6c01025f 100644 --- a/src/tests/other-tests.ts +++ b/src/tests/other-tests.ts @@ -12,7 +12,6 @@ import { import { startApiServer, ApiServer } from '../api/init'; import { I32_MAX, microStxToStx, STACKS_DECIMAL_PLACES } from '../helpers'; import { FEE_RATE } from '../api/routes/fee-rate'; -import { FeeRateRequest } from '@stacks/stacks-blockchain-api-types'; import { PgWriteStore } from '../datastore/pg-write-store'; import { getPagingQueryLimit, ResourceType } from '../api/pagination'; import { PgSqlClient, bufferToHex } from '@hirosystems/api-toolkit'; @@ -233,7 +232,7 @@ describe('other tests', () => { }); test('Get fee rate', async () => { - const request: FeeRateRequest = { + const request = { transaction: '0x5e9f3933e358df6a73fec0d47ce3e1062c20812c129f5294e6f37a8d27c051d9', }; const result = await supertest(api.server).post('/extended/v1/fee_rate').send(request); diff --git a/src/tests/socket-io-tests.ts b/src/tests/socket-io-tests.ts index 3fa0c6be5..42e5638cf 100644 --- a/src/tests/socket-io-tests.ts +++ b/src/tests/socket-io-tests.ts @@ -2,15 +2,6 @@ import { io } from 'socket.io-client'; import { ChainID } from '@stacks/common'; import { ApiServer, startApiServer } from '../api/init'; import { DbAssetEventTypeId, DbTxStatus } from '../datastore/common'; -import { - Block, - Microblock, - MempoolTransaction, - AddressTransactionWithTransfers, - AddressStxBalanceResponse, - Transaction, - NftEvent, -} from '../../docs/generated'; import { TestBlockBuilder, testMempoolTx, @@ -20,6 +11,15 @@ import { PgWriteStore } from '../datastore/pg-write-store'; import { migrate } from '../test-utils/test-helpers'; import { Waiter, waiter } from '@hirosystems/api-toolkit'; import { StacksApiSocketClient } from '../../client/src/socket-io'; +import { + AddressStxBalanceResponse, + AddressTransactionWithTransfers, + Block, + MempoolTransaction, + Microblock, + NftEvent, + Transaction, +} from 'client/src/types'; describe('socket-io', () => { let apiServer: ApiServer; diff --git a/src/tests/token-tests.ts b/src/tests/token-tests.ts index cca4760e0..d9a90d301 100644 --- a/src/tests/token-tests.ts +++ b/src/tests/token-tests.ts @@ -5,7 +5,6 @@ import { TestBlockBuilder, TestMicroblockStreamBuilder } from '../test-utils/tes import { DbAssetEventTypeId } from '../datastore/common'; import { PgWriteStore } from '../datastore/pg-write-store'; import { migrate } from '../test-utils/test-helpers'; -import { FungibleTokenHolderList } from '@stacks/stacks-blockchain-api-types'; describe('/extended/v1/tokens tests', () => { let db: PgWriteStore; @@ -1027,7 +1026,7 @@ describe('/extended/v1/tokens tests', () => { expect(request1.status).toBe(200); expect(request1.type).toBe('application/json'); - const request1Body: FungibleTokenHolderList = request1.body; + const request1Body = request1.body as { results: any[] }; const balance1 = request1Body.results.find(b => b.address === addr1)?.balance; expect(balance1).toBe('1000'); }); @@ -1051,7 +1050,7 @@ describe('/extended/v1/tokens tests', () => { expect(request1.status).toBe(200); expect(request1.type).toBe('application/json'); - const request1Body: FungibleTokenHolderList = request1.body; + const request1Body = request1.body as { results: any[] }; const balance1 = request1Body.results.find(b => b.address === addr1)?.balance; expect(balance1).toBe('1000'); }); diff --git a/src/tests/tx-tests.ts b/src/tests/tx-tests.ts index 095da598f..88a91063d 100644 --- a/src/tests/tx-tests.ts +++ b/src/tests/tx-tests.ts @@ -45,7 +45,7 @@ import { createDbTxFromCoreMsg } from '../datastore/helpers'; import { getPagingQueryLimit, ResourceType } from '../api/pagination'; import { PgSqlClient, bufferToHex } from '@hirosystems/api-toolkit'; import { migrate } from '../test-utils/test-helpers'; -import { Transaction } from '@stacks/stacks-blockchain-api-types'; +import { Transaction } from '../api/schemas/entities/transactions'; describe('tx tests', () => { let db: PgWriteStore; diff --git a/src/tests/websocket-tests.ts b/src/tests/websocket-tests.ts index fb2539b81..b5a0da01a 100644 --- a/src/tests/websocket-tests.ts +++ b/src/tests/websocket-tests.ts @@ -4,25 +4,23 @@ import { DbTxTypeId, DbTxStatus, DbAssetEventTypeId } from '../datastore/common' import { once } from 'events'; import { RpcWebSocketClient } from 'rpc-websocket-client'; import { - RpcTxUpdateSubscriptionParams, - RpcAddressTxSubscriptionParams, - RpcAddressTxNotificationParams, - RpcAddressBalanceSubscriptionParams, - RpcAddressBalanceNotificationParams, - RpcMempoolSubscriptionParams, + Block, + connectWebSocketClient, MempoolTransaction, - TransactionStatus, - MempoolTransactionStatus, + Microblock, + NftEvent, + RpcAddressBalanceNotificationParams, + RpcAddressBalanceSubscriptionParams, + RpcAddressTxNotificationParams, + RpcAddressTxSubscriptionParams, RpcBlockSubscriptionParams, - Block, + RpcMempoolSubscriptionParams, RpcMicroblockSubscriptionParams, - Microblock, - RpcNftEventSubscriptionParams, RpcNftAssetEventSubscriptionParams, RpcNftCollectionEventSubscriptionParams, - NftEvent, -} from '@stacks/stacks-blockchain-api-types'; -import { connectWebSocketClient } from '../../client/src'; + RpcNftEventSubscriptionParams, + RpcTxUpdateSubscriptionParams, +} from '../../client/src'; import { ChainID } from '@stacks/transactions'; import { TestBlockBuilder, @@ -82,7 +80,7 @@ describe('websocket notifications', () => { // watch for update to this tx let updateIndex = 0; - const txUpdates: Waiter[] = [ + const txUpdates: Waiter[] = [ waiter(), waiter(), waiter(), diff --git a/tsconfig.build.json b/tsconfig.build.json index 1e75b3e11..c359f5771 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -12,10 +12,7 @@ "skipLibCheck": true, "outDir": "lib", "rootDir": "src", - "baseUrl": ".", - "paths": { - "@stacks/stacks-blockchain-api-types": ["docs"] - } + "baseUrl": "." }, "include": ["src/**/*"], "exclude": ["lib", "node_modules", "src/tests*"] diff --git a/tsconfig.json b/tsconfig.json index 16e6c8c5f..bfe29707c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,9 +13,6 @@ "outDir": "lib", "noEmit": true, "baseUrl": ".", - "paths": { - "@stacks/stacks-blockchain-api-types": ["docs"], - }, "typeRoots": [ "./src/@types", "./node_modules/@types" From 2fa84eec6f6323f39d575f17b4f83a667e7df32f Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 7 Aug 2024 21:42:18 +0200 Subject: [PATCH 37/56] chore: isolate rosetta json schemas and delete the rest --- .../address/get-address-assets.example.json | 18 - .../address/get-address-assets.schema.json | 25 -- .../address/get-address-balances.example.json | 14 - .../address/get-address-balances.schema.json | 35 -- ...le-transaction-with-transfers.example.json | 50 --- .../get-address-stx-balance.example.json | 10 - .../get-address-stx-balance.schema.json | 19 - .../get-address-stx-inbound.example.json | 16 - .../get-address-stx-inbound.schema.json | 25 -- ...et-address-transaction-events.example.json | 49 --- ...get-address-transaction-events.schema.json | 25 -- ...s-transactions-with-transfers.example.json | 133 ------ ...ss-transactions-with-transfers.schema.json | 25 -- .../get-address-transactions.example.json | 28 -- .../get-address-transactions.schema.json | 33 -- .../get-v2-address-transactions.example.json | 130 ------ .../get-v2-address-transactions.schema.json | 25 -- .../api/blocks/get-average-times.example.json | 6 - docs/api/blocks/get-average-times.schema.json | 30 -- docs/api/blocks/get-blocks.example.json | 40 -- docs/api/blocks/get-blocks.schema.json | 29 -- docs/api/blocks/get-burn-blocks.example.json | 21 - docs/api/blocks/get-burn-blocks.schema.json | 29 -- .../blocks/get-nakamoto-blocks.example.json | 26 -- .../blocks/get-nakamoto-blocks.schema.json | 29 -- docs/api/bns/errors/bns-error.schema.json | 9 - .../bns-invalid-name-subdomain.example.json | 3 - .../bns/errors/bns-invalid-page.example.json | 3 - .../bns/errors/bns-invalid-tx-id.example.json | 3 - .../bns/errors/bns-no-such-name.example.json | 3 - .../errors/bns-no-such-namespace.example.json | 3 - .../bns/errors/bns-no-zone-file.example.json | 3 - .../bns-unsupported-blockchain.example.json | 3 - .../bns-fetch-zone-file-response.example.json | 3 - .../bns-fetch-zone-file-response.schema.json | 26 -- .../bns-get-all-names-response.example.json | 1 - .../bns-get-all-names-response.schema.json | 9 - ...s-get-all-subdomains-response.example.json | 10 - ...ns-get-all-subdomains-response.schema.json | 9 - ...historical-zone-file-response.example.json | 18 - ...-historical-zone-file-response.schema.json | 20 - .../bns-get-name-info.response.example.json | 12 - .../bns-get-name-info.response.schema.json | 39 -- .../bns-get-name-price-response.example.json | 6 - .../bns-get-name-price-response.schema.json | 11 - ...mes-owned-by-address-response.example.json | 3 - ...ames-owned-by-address-response.schema.json | 16 - ...-get-subdomain-at-tx-response.example.json | 34 -- ...s-get-subdomain-at-tx-response.schema.json | 76 ---- ...all-namespaces-names-response.example.json | 1 - ...-all-namespaces-names-response.schema.json | 9 - ...s-get-all-namespaces-response.example.json | 3 - ...ns-get-all-namespaces-response.schema.json | 13 - ...-get-namespace-price-response.example.json | 4 - ...s-get-namespace-price-response.schema.json | 17 - .../subdomains/subdomains-list.example.json | 7 - .../subdomains/subdomains-list.schema.json | 9 - .../get-reward-slot-holders.example.json | 21 - .../get-reward-slot-holders.schema.json | 29 -- docs/api/burnchain/get-rewards.example.json | 24 - docs/api/burnchain/get-rewards.schema.json | 25 -- .../post-call-read-only-fn-fail.example.json | 4 - ...ost-call-read-only-fn-success.example.json | 4 - .../post-call-read-only-fn.schema.json | 18 - .../smart-contract-list-response.example.json | 14 - .../smart-contract-list-response.schema.json | 28 -- .../core-node/get-account-data.example.json | 8 - .../core-node/get-account-data.schema.json | 27 -- .../get-contract-data-map-entry.example.json | 4 - .../get-contract-data-map-entry.schema.json | 17 - .../get-contract-interface.example.json | 134 ------ .../get-contract-interface.schema.json | 44 -- .../get-contract-source.example.json | 5 - .../core-node/get-contract-source.schema.json | 18 - .../core-node/get-fee-transfer.example.json | 1 - .../core-node/get-fee-transfer.schema.json | 6 - docs/api/core-node/get-info.example.json | 15 - docs/api/core-node/get-info.schema.json | 75 ---- docs/api/core-node/get-pox.example.json | 33 -- docs/api/core-node/get-pox.schema.json | 46 -- ...post-fee-transaction-response.example.json | 25 -- .../post-fee-transaction-response.schema.json | 60 --- .../post-fee-transaction.example.json | 4 - .../post-fee-transaction.schema.json | 17 - docs/api/errors/block-not-found.example.json | 3 - .../errors/microblock-not-found.example.json | 3 - docs/api/errors/search-not-found.example.json | 7 - .../errors/transaction-not-found.example.json | 3 - docs/api/faucet/run-faucet.example.json | 5 - docs/api/faucet/run-faucet.schema.json | 21 - .../info/get-fee-rate-request.example.json | 3 - .../api/info/get-fee-rate-request.schema.json | 15 - .../info/get-fee-rate-response.example.json | 3 - .../info/get-fee-rate-response.schema.json | 14 - ...network-block-time-by-network.example.json | 3 - ...-network-block-time-by-network.schema.json | 5 - .../info/get-network-block-times.example.json | 8 - .../info/get-network-block-times.schema.json | 15 - docs/api/info/get-status.example.json | 11 - docs/api/info/get-status.schema.json | 34 -- ...t-stx-supply-circulating-plain.schema.json | 5 - .../get-stx-supply-legacy-format.example.json | 8 - .../get-stx-supply-legacy-format.schema.json | 33 -- .../get-stx-supply-total-plain.schema.json | 5 - docs/api/info/get-stx-supply.example.json | 6 - docs/api/info/get-stx-supply.schema.json | 25 -- .../mempool/get-fee-priorities.example.json | 26 -- .../mempool/get-fee-priorities.schema.json | 107 ----- .../microblocks/get-microblocks.schema.json | 29 -- .../get-unanchored-txs.schema.json | 19 - docs/api/search/search-address.schema.json | 38 -- docs/api/search/search-block.schema.json | 58 --- docs/api/search/search-contract.example.json | 14 - docs/api/search/search-contract.schema.json | 69 --- docs/api/search/search-error.schema.json | 29 -- docs/api/search/search-mempool.schema.json | 44 -- docs/api/search/search-success.schema.json | 23 - docs/api/search/search-tx-id.example.json | 14 - docs/api/search/search-tx-id.schema.json | 58 --- docs/api/search/search.schema.json | 14 - .../get-smart-contracts-status.example.json | 31 -- .../get-smart-contracts-status.schema.json | 15 - .../smart-contract-found.schema.json | 15 - .../smart-contract-not-found.schema.json | 12 - .../get-pool-delegations.example.json | 22 - .../stacking/get-pool-delegations.schema.json | 29 -- ...get-pox-cycle-signer-stackers.example.json | 13 - .../get-pox-cycle-signer-stackers.schema.json | 29 -- .../get-pox-cycle-signers.example.json | 37 -- .../get-pox-cycle-signers.schema.json | 29 -- docs/api/stacking/get-pox-cycles.example.json | 31 -- docs/api/stacking/get-pox-cycles.schema.json | 29 -- docs/api/tokens/get-ft-holders.example.json | 20 - docs/api/tokens/get-ft-holders.schema.json | 38 -- ...en-history-tx-metadata.example.schema.json | 154 ------- ...fungible-token-history.example.schema.json | 21 - ...get-non-fungible-token-history.schema.json | 33 -- ...n-holdings-tx-metadata.example.schema.json | 200 --------- ...ungible-token-holdings.example.schema.json | 34 -- ...et-non-fungible-token-holdings.schema.json | 33 -- ...oken-mints-tx-metadata.example.schema.json | 302 ------------- ...n-fungible-token-mints.example.schema.json | 52 --- .../get-non-fungible-token-mints.schema.json | 33 -- .../get-mempool-stats.example.json | 86 ---- .../transaction/get-mempool-stats.schema.json | 414 ------------------ .../get-mempool-transactions.example.json | 131 ------ .../get-mempool-transactions.schema.json | 24 - .../get-raw-transaction.example.json | 3 - .../get-raw-transaction.schema.json | 13 - .../get-transaction-events.example.json | 34 -- .../get-transaction-events.schema.json | 25 -- .../transaction/get-transactions.example.json | 40 -- .../transaction/get-transactions.schema.json | 28 -- ...-core-node-transactions-error.example.json | 11 - ...t-core-node-transactions-error.schema.json | 25 -- .../address/address-nonces.example.json | 7 - .../address/address-nonces.schema.json | 42 -- .../address-transaction-event.schema.json | 142 ------ .../address/address-transaction.schema.json | 81 ---- .../address/token-offering-locked.schema.json | 27 -- .../transaction-with-transfers.schema.json | 115 ----- .../address/unlock-schedule.schema.json | 19 - docs/entities/balance/ft-balance.schema.json | 17 - docs/entities/balance/nft-balance.schema.json | 17 - docs/entities/balance/stx-balance.schema.json | 54 --- docs/entities/blocks/block.example.json | 42 -- docs/entities/blocks/block.schema.json | 140 ------ docs/entities/blocks/burn-block.example.json | 14 - docs/entities/blocks/burn-block.schema.json | 48 -- .../blocks/nakamoto-block.example.json | 21 - .../blocks/nakamoto-block.schema.json | 106 ----- .../burnchain/reward-slot-holder.example.json | 7 - .../burnchain/reward-slot-holder.schema.json | 29 -- docs/entities/burnchain/reward.example.json | 9 - docs/entities/burnchain/reward.schema.json | 37 -- .../burnchain/rewards-total.example.json | 4 - .../burnchain/rewards-total.schema.json | 17 - ...ific-data-map-inside-contract.example.json | 1 - ...ly-function-args-request-body.example.json | 6 - .../read-only-function-args.schema.json | 20 - .../contracts/smart-contract.example.json | 8 - .../contracts/smart-contract.schema.json | 27 -- docs/entities/info/block-time.example.json | 3 - docs/entities/info/block-time.schema.json | 13 - docs/entities/info/chain-tip.example.json | 7 - docs/entities/info/chain-tip.schema.json | 38 -- .../abstract-transaction.schema.json | 31 -- .../transaction-0-token-transfer.schema.json | 13 - .../transaction-1-smart-contract.schema.json | 13 - .../transaction-2-contract-call.schema.json | 13 - ...ransaction-3-poison-microblock.schema.json | 13 - .../transaction-4-coinbase.schema.json | 13 - .../transaction-7-tenure-change.schema.json | 13 - .../transaction-status.schema.json | 6 - .../transaction.schema.json | 25 -- .../microblocks/microblock.example.json | 25 -- .../microblocks/microblock.schema.json | 85 ---- .../nft-events/nft-event.example.json | 9 - .../entities/nft-events/nft-event.schema.json | 56 --- .../post-condition-0-stx.schema.json | 33 -- .../post-condition-1-fungible.schema.json | 49 --- .../post-condition-2-non-fungible.schema.json | 59 --- ...dition-fungible-condition-code.schema.json | 12 - .../post-condition-mode.schema.json | 6 - ...on-non-fungible-condition-code.schema.json | 6 - .../post-condition-principal-type.schema.json | 6 - .../post-condition-principal.schema.json | 48 -- .../post-condition-type.schema.json | 6 - .../post-condition.schema.json | 15 - .../rosetta-account-identifier.schema.json | 19 - .../rosetta/rosetta-account.schema.json | 20 - .../rosetta-amount-max-fee.schema.json | 19 - .../rosetta/rosetta-amount.schema.json | 20 - .../rosetta-block-identifier-hash.schema.json | 13 - ...osetta-block-identifier-height.schema.json | 13 - .../rosetta-block-identifier.schema.json | 12 - .../rosetta/rosetta-block.schema.json | 37 -- .../rosetta/rosetta-coin-change.schema.json | 25 -- .../entities/rosetta/rosetta-coin.schema.json | 24 - .../rosetta-construction-options.schema.json | 112 ----- .../rosetta/rosetta-currency.schema.json | 21 - .../rosetta-error-no-details.schema.json | 21 - .../rosetta/rosetta-error.schema.json | 33 -- ...setta-genesis-block-identifier.schema.json | 17 - .../rosetta-network-identifier.schema.json | 40 -- .../rosetta/rosetta-network-peers.schema.json | 17 - ...osetta-oldest-block-identifier.schema.json | 17 - .../rosetta-operation-identifier.schema.json | 17 - .../rosetta-operation-statuses.schema.json | 17 - .../rosetta/rosetta-operation.schema.json | 40 -- ...a-other-transaction-identifier.schema.json | 13 - ...osetta-parent-block-identifier.schema.json | 17 - ...setta-partial-block-identifier.schema.json | 16 - .../rosetta/rosetta-public-key.schema.json | 18 - .../rosetta-related-operation.schema.json | 17 - .../rosetta-signature-type.schema.json | 6 - .../rosetta/rosetta-signature.schema.json | 21 - .../rosetta-signing-payload.schema.json | 24 - .../rosetta/rosetta-sub-account.schema.json | 17 - .../rosetta/rosetta-sync-status.schema.json | 25 -- ...rosetta-transaction-identifier.schema.json | 13 - .../rosetta/rosetta-transaction.schema.json | 37 -- .../smart-contract-status.example.json | 6 - .../smart-contract-status.schema.json | 29 -- .../stacking/pool-delegation.example.json | 8 - .../stacking/pool-delegation.schema.json | 32 -- docs/entities/stacking/pox-cycle.example.json | 8 - docs/entities/stacking/pox-cycle.schema.json | 33 -- docs/entities/stacking/signer.example.json | 10 - docs/entities/stacking/signer.schema.json | 44 -- docs/entities/stacking/stacker.example.json | 6 - docs/entities/stacking/stacker.schema.json | 26 -- .../tokens/ft-holder-entry.schema.json | 14 - ...-history-event-0-tx-id.example.schema.json | 7 - ...le-token-history-event-0-tx-id.schema.json | 25 -- ...ry-event-1-tx-metadata.example.schema.json | 91 ---- ...en-history-event-1-tx-metadata.schema.json | 25 -- ...n-fungible-token-history-event.schema.json | 14 - ...-token-holding-0-tx-id.example.schema.json | 8 - ...fungible-token-holding-0-tx-id.schema.json | 34 -- ...-holding-1-tx-metadata.example.schema.json | 58 --- ...le-token-holding-1-tx-metadata.schema.json | 34 -- .../non-fungible-token-holding.schema.json | 14 - ...ble-token-mint-0-tx-id.example.schema.json | 9 - ...on-fungible-token-mint-0-tx-id.schema.json | 34 -- ...ken-mint-1-tx-metadata.example.schema.json | 59 --- ...gible-token-mint-1-tx-metadata.schema.json | 34 -- .../non-fungible-token-mint.schema.json | 14 - .../abstract-transaction-event.schema.json | 11 - .../transaction-event-asset-type.schema.json | 5 - .../transaction-event-asset.schema.json | 28 -- ...ansaction-event-fungible-asset.schema.json | 45 -- ...ction-event-non-fungible-asset.schema.json | 55 --- ...tion-event-smart-contract-log.example.json | 18 - ...ction-event-smart-contract-log.schema.json | 50 --- .../transaction-event-stx-asset.schema.json | 27 -- .../transaction-event-stx-lock.schema.json | 40 -- .../transaction-event-type.schema.json | 6 - .../transaction-event.schema.json | 21 - .../abstract-transaction.schema.json | 156 ------- .../transactions/anchor-mode.schema.json | 6 - .../transactions/base-transaction.schema.json | 56 --- ...tion-0-token-transfer-metadata.schema.json | 31 -- .../transaction-0-token-transfer.example.json | 35 -- .../transaction-0-token-transfer.schema.json | 13 - ...tion-1-smart-contract-metadata.schema.json | 33 -- .../transaction-1-smart-contract.example.json | 101 ----- .../transaction-1-smart-contract.schema.json | 13 - ...ction-2-contract-call-metadata.schema.json | 55 --- .../transaction-2-contract-call.example.json | 39 -- .../transaction-2-contract-call.schema.json | 13 - ...n-3-poison-microblock-metadata.schema.json | 28 -- ...ransaction-3-poison-microblock.schema.json | 13 - ...ransaction-4-coinbase-metadata.schema.json | 34 -- .../transaction-4-coinbase.example.json | 25 -- .../transaction-4-coinbase.schema.json | 13 - ...ction-7-tenure-change-metadata.schema.json | 49 --- .../transaction-7-tenure-change.example.json | 25 -- .../transaction-7-tenure-change.schema.json | 13 - .../transaction-found.schema.json | 23 - .../transactions/transaction-list.schema.json | 14 - .../transaction-metadata.schema.json | 24 - .../transaction-not-found.schema.json | 23 - .../transaction-status.schema.json | 6 - .../transactions/transaction-type.schema.json | 6 - .../transactions/transaction.schema.json | 25 -- .../transactions-list-detail.example.json | 99 ----- .../inbound-stx-transfer.example.json | 9 - .../inbound-stx-transfer.schema.json | 38 -- ...-balance-notification-response.schema.json | 39 -- ...ss-balance-subscription-params.schema.json | 19 - ...s-balance-subscription-request.schema.json | 28 -- ...dress-tx-notification-response.schema.json | 48 -- ...address-tx-subscription-params.schema.json | 19 - ...ddress-tx-subscription-request.schema.json | 28 -- ...pc-block-notification-response.schema.json | 24 - .../rpc-block-subscription-params.schema.json | 13 - ...rpc-block-subscription-request.schema.json | 23 - ...-mempool-notification-response.schema.json | 24 - ...pc-mempool-subscription-params.schema.json | 13 - ...c-mempool-subscription-request.schema.json | 23 - ...croblock-notification-response.schema.json | 24 - ...microblock-subscription-params.schema.json | 13 - ...icroblock-subscription-request.schema.json | 23 - ...sset-event-subscription-params.schema.json | 23 - ...set-event-subscription-request.schema.json | 23 - ...tion-event-subscription-params.schema.json | 19 - ...ion-event-subscription-request.schema.json | 23 - ...ft-event-notification-response.schema.json | 24 - ...-nft-event-subscription-params.schema.json | 13 - ...nft-event-subscription-request.schema.json | 23 - .../ws-rpc/rpc-subscription-type.schema.json | 16 - ...x-update-notification-response.schema.json | 31 -- ...-tx-update-subscription-params.schema.json | 19 - ...tx-update-subscription-request.schema.json | 28 -- src/api/rosetta-constants.ts | 93 ++-- src/api/rosetta-validate.ts | 2 +- src/api/validate.ts | 20 +- ...-account-balance-request-body.example.json | 0 ...osetta-account-balance-request.schema.json | 0 ...tifier-publickey-request-body.example.json | 0 ...-network-options-request-body.example.json | 0 .../rosetta-account-response.schema.json | 0 .../rosetta-block-request-body.example.json | 0 .../rosetta-block-request.schema.json | 0 .../rosetta-block-response.schema.json | 0 ...lock-transaction-request-body.example.json | 0 ...etta-block-transaction-request.schema.json | 0 ...tta-block-transaction-response.schema.json | 0 ...a-construction-combine-request.schema.json | 0 ...-construction-combine-response.schema.json | 0 ...ta-construction-derive-request.schema.json | 0 ...a-construction-derive-response.schema.json | 0 ...etta-construction-hash-request.schema.json | 0 ...tta-construction-hash-response.schema.json | 0 ...-metadata-request-schema-body.example.json | 0 ...-construction-metadata-request.schema.json | 0 ...construction-metadata-response.schema.json | 0 ...tta-construction-parse-request.schema.json | 0 ...ta-construction-parse-response.schema.json | 0 ...-construction-payloads-request.schema.json | 0 ...construction-payloads-response.schema.json | 0 ...onstruction-preprocess-request.schema.json | 0 ...struction-preprocess-response.example.json | 0 ...nstruction-preprocess-response.schema.json | 0 ...ta-construction-submit-request.schema.json | 0 ...a-construction-submit-response.schema.json | 0 ...ansaction-request-schema-body.example.json | 0 ...hool-transaction-request-body.example.json | 0 .../rosetta-mempool-request.schema.json | 0 .../rosetta-mempool-response.schema.json | 0 ...ta-mempool-transaction-request.schema.json | 0 ...a-mempool-transaction-response.schema.json | 0 .../rosetta-mempool-transaction.example.json | 0 .../rosetta-network-list-request.schema.json | 0 .../rosetta-network-list-response.schema.json | 0 ...osetta-network-options-request.schema.json | 0 ...setta-network-options-response.schema.json | 0 ...rosetta-network-status-request.schema.json | 0 ...osetta-network-status-response.schema.json | 0 ...ction-from-signarures-request.example.json | 0 ...it-signed-transaction-request.example.json | 0 ...ion-unsigned-payloads-request.example.json | 0 383 files changed, 34 insertions(+), 9920 deletions(-) delete mode 100644 docs/api/address/get-address-assets.example.json delete mode 100644 docs/api/address/get-address-assets.schema.json delete mode 100644 docs/api/address/get-address-balances.example.json delete mode 100644 docs/api/address/get-address-balances.schema.json delete mode 100644 docs/api/address/get-address-single-transaction-with-transfers.example.json delete mode 100644 docs/api/address/get-address-stx-balance.example.json delete mode 100644 docs/api/address/get-address-stx-balance.schema.json delete mode 100644 docs/api/address/get-address-stx-inbound.example.json delete mode 100644 docs/api/address/get-address-stx-inbound.schema.json delete mode 100644 docs/api/address/get-address-transaction-events.example.json delete mode 100644 docs/api/address/get-address-transaction-events.schema.json delete mode 100644 docs/api/address/get-address-transactions-with-transfers.example.json delete mode 100644 docs/api/address/get-address-transactions-with-transfers.schema.json delete mode 100644 docs/api/address/get-address-transactions.example.json delete mode 100644 docs/api/address/get-address-transactions.schema.json delete mode 100644 docs/api/address/get-v2-address-transactions.example.json delete mode 100644 docs/api/address/get-v2-address-transactions.schema.json delete mode 100644 docs/api/blocks/get-average-times.example.json delete mode 100644 docs/api/blocks/get-average-times.schema.json delete mode 100644 docs/api/blocks/get-blocks.example.json delete mode 100644 docs/api/blocks/get-blocks.schema.json delete mode 100644 docs/api/blocks/get-burn-blocks.example.json delete mode 100644 docs/api/blocks/get-burn-blocks.schema.json delete mode 100644 docs/api/blocks/get-nakamoto-blocks.example.json delete mode 100644 docs/api/blocks/get-nakamoto-blocks.schema.json delete mode 100644 docs/api/bns/errors/bns-error.schema.json delete mode 100644 docs/api/bns/errors/bns-invalid-name-subdomain.example.json delete mode 100644 docs/api/bns/errors/bns-invalid-page.example.json delete mode 100644 docs/api/bns/errors/bns-invalid-tx-id.example.json delete mode 100644 docs/api/bns/errors/bns-no-such-name.example.json delete mode 100644 docs/api/bns/errors/bns-no-such-namespace.example.json delete mode 100644 docs/api/bns/errors/bns-no-zone-file.example.json delete mode 100644 docs/api/bns/errors/bns-unsupported-blockchain.example.json delete mode 100644 docs/api/bns/manage-names/bns-fetch-zone-file-response.example.json delete mode 100644 docs/api/bns/manage-names/bns-fetch-zone-file-response.schema.json delete mode 100644 docs/api/bns/name-querying/bns-get-all-names-response.example.json delete mode 100644 docs/api/bns/name-querying/bns-get-all-names-response.schema.json delete mode 100644 docs/api/bns/name-querying/bns-get-all-subdomains-response.example.json delete mode 100644 docs/api/bns/name-querying/bns-get-all-subdomains-response.schema.json delete mode 100644 docs/api/bns/name-querying/bns-get-historical-zone-file-response.example.json delete mode 100644 docs/api/bns/name-querying/bns-get-historical-zone-file-response.schema.json delete mode 100644 docs/api/bns/name-querying/bns-get-name-info.response.example.json delete mode 100644 docs/api/bns/name-querying/bns-get-name-info.response.schema.json delete mode 100644 docs/api/bns/name-querying/bns-get-name-price-response.example.json delete mode 100644 docs/api/bns/name-querying/bns-get-name-price-response.schema.json delete mode 100644 docs/api/bns/name-querying/bns-get-names-owned-by-address-response.example.json delete mode 100644 docs/api/bns/name-querying/bns-get-names-owned-by-address-response.schema.json delete mode 100644 docs/api/bns/name-querying/bns-get-subdomain-at-tx-response.example.json delete mode 100644 docs/api/bns/name-querying/bns-get-subdomain-at-tx-response.schema.json delete mode 100644 docs/api/bns/namespace-operations/bns-get-all-namespaces-names-response.example.json delete mode 100644 docs/api/bns/namespace-operations/bns-get-all-namespaces-names-response.schema.json delete mode 100644 docs/api/bns/namespace-operations/bns-get-all-namespaces-response.example.json delete mode 100644 docs/api/bns/namespace-operations/bns-get-all-namespaces-response.schema.json delete mode 100644 docs/api/bns/namespace-operations/bns-get-namespace-price-response.example.json delete mode 100644 docs/api/bns/namespace-operations/bns-get-namespace-price-response.schema.json delete mode 100644 docs/api/bns/subdomains/subdomains-list.example.json delete mode 100644 docs/api/bns/subdomains/subdomains-list.schema.json delete mode 100644 docs/api/burnchain/get-reward-slot-holders.example.json delete mode 100644 docs/api/burnchain/get-reward-slot-holders.schema.json delete mode 100644 docs/api/burnchain/get-rewards.example.json delete mode 100644 docs/api/burnchain/get-rewards.schema.json delete mode 100644 docs/api/contract/post-call-read-only-fn-fail.example.json delete mode 100644 docs/api/contract/post-call-read-only-fn-success.example.json delete mode 100644 docs/api/contract/post-call-read-only-fn.schema.json delete mode 100644 docs/api/contract/smart-contract-list-response.example.json delete mode 100644 docs/api/contract/smart-contract-list-response.schema.json delete mode 100644 docs/api/core-node/get-account-data.example.json delete mode 100644 docs/api/core-node/get-account-data.schema.json delete mode 100644 docs/api/core-node/get-contract-data-map-entry.example.json delete mode 100644 docs/api/core-node/get-contract-data-map-entry.schema.json delete mode 100644 docs/api/core-node/get-contract-interface.example.json delete mode 100644 docs/api/core-node/get-contract-interface.schema.json delete mode 100644 docs/api/core-node/get-contract-source.example.json delete mode 100644 docs/api/core-node/get-contract-source.schema.json delete mode 100644 docs/api/core-node/get-fee-transfer.example.json delete mode 100644 docs/api/core-node/get-fee-transfer.schema.json delete mode 100644 docs/api/core-node/get-info.example.json delete mode 100644 docs/api/core-node/get-info.schema.json delete mode 100644 docs/api/core-node/get-pox.example.json delete mode 100644 docs/api/core-node/get-pox.schema.json delete mode 100644 docs/api/core-node/post-fee-transaction-response.example.json delete mode 100644 docs/api/core-node/post-fee-transaction-response.schema.json delete mode 100644 docs/api/core-node/post-fee-transaction.example.json delete mode 100644 docs/api/core-node/post-fee-transaction.schema.json delete mode 100644 docs/api/errors/block-not-found.example.json delete mode 100644 docs/api/errors/microblock-not-found.example.json delete mode 100644 docs/api/errors/search-not-found.example.json delete mode 100644 docs/api/errors/transaction-not-found.example.json delete mode 100644 docs/api/faucet/run-faucet.example.json delete mode 100644 docs/api/faucet/run-faucet.schema.json delete mode 100644 docs/api/info/get-fee-rate-request.example.json delete mode 100644 docs/api/info/get-fee-rate-request.schema.json delete mode 100644 docs/api/info/get-fee-rate-response.example.json delete mode 100644 docs/api/info/get-fee-rate-response.schema.json delete mode 100644 docs/api/info/get-network-block-time-by-network.example.json delete mode 100644 docs/api/info/get-network-block-time-by-network.schema.json delete mode 100644 docs/api/info/get-network-block-times.example.json delete mode 100644 docs/api/info/get-network-block-times.schema.json delete mode 100644 docs/api/info/get-status.example.json delete mode 100644 docs/api/info/get-status.schema.json delete mode 100644 docs/api/info/get-stx-supply-circulating-plain.schema.json delete mode 100644 docs/api/info/get-stx-supply-legacy-format.example.json delete mode 100644 docs/api/info/get-stx-supply-legacy-format.schema.json delete mode 100644 docs/api/info/get-stx-supply-total-plain.schema.json delete mode 100644 docs/api/info/get-stx-supply.example.json delete mode 100644 docs/api/info/get-stx-supply.schema.json delete mode 100644 docs/api/mempool/get-fee-priorities.example.json delete mode 100644 docs/api/mempool/get-fee-priorities.schema.json delete mode 100644 docs/api/microblocks/get-microblocks.schema.json delete mode 100644 docs/api/microblocks/get-unanchored-txs.schema.json delete mode 100644 docs/api/search/search-address.schema.json delete mode 100644 docs/api/search/search-block.schema.json delete mode 100644 docs/api/search/search-contract.example.json delete mode 100644 docs/api/search/search-contract.schema.json delete mode 100644 docs/api/search/search-error.schema.json delete mode 100644 docs/api/search/search-mempool.schema.json delete mode 100644 docs/api/search/search-success.schema.json delete mode 100644 docs/api/search/search-tx-id.example.json delete mode 100644 docs/api/search/search-tx-id.schema.json delete mode 100644 docs/api/search/search.schema.json delete mode 100644 docs/api/smart-contracts/get-smart-contracts-status.example.json delete mode 100644 docs/api/smart-contracts/get-smart-contracts-status.schema.json delete mode 100644 docs/api/smart-contracts/smart-contract-found.schema.json delete mode 100644 docs/api/smart-contracts/smart-contract-not-found.schema.json delete mode 100644 docs/api/stacking/get-pool-delegations.example.json delete mode 100644 docs/api/stacking/get-pool-delegations.schema.json delete mode 100644 docs/api/stacking/get-pox-cycle-signer-stackers.example.json delete mode 100644 docs/api/stacking/get-pox-cycle-signer-stackers.schema.json delete mode 100644 docs/api/stacking/get-pox-cycle-signers.example.json delete mode 100644 docs/api/stacking/get-pox-cycle-signers.schema.json delete mode 100644 docs/api/stacking/get-pox-cycles.example.json delete mode 100644 docs/api/stacking/get-pox-cycles.schema.json delete mode 100644 docs/api/tokens/get-ft-holders.example.json delete mode 100644 docs/api/tokens/get-ft-holders.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-history-tx-metadata.example.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-history.example.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-history.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-holdings-tx-metadata.example.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-holdings.example.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-holdings.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-mints-tx-metadata.example.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-mints.example.schema.json delete mode 100644 docs/api/tokens/get-non-fungible-token-mints.schema.json delete mode 100644 docs/api/transaction/get-mempool-stats.example.json delete mode 100644 docs/api/transaction/get-mempool-stats.schema.json delete mode 100644 docs/api/transaction/get-mempool-transactions.example.json delete mode 100644 docs/api/transaction/get-mempool-transactions.schema.json delete mode 100644 docs/api/transaction/get-raw-transaction.example.json delete mode 100644 docs/api/transaction/get-raw-transaction.schema.json delete mode 100644 docs/api/transaction/get-transaction-events.example.json delete mode 100644 docs/api/transaction/get-transaction-events.schema.json delete mode 100644 docs/api/transaction/get-transactions.example.json delete mode 100644 docs/api/transaction/get-transactions.schema.json delete mode 100644 docs/api/transaction/post-core-node-transactions-error.example.json delete mode 100644 docs/api/transaction/post-core-node-transactions-error.schema.json delete mode 100644 docs/entities/address/address-nonces.example.json delete mode 100644 docs/entities/address/address-nonces.schema.json delete mode 100644 docs/entities/address/address-transaction-event.schema.json delete mode 100644 docs/entities/address/address-transaction.schema.json delete mode 100644 docs/entities/address/token-offering-locked.schema.json delete mode 100644 docs/entities/address/transaction-with-transfers.schema.json delete mode 100644 docs/entities/address/unlock-schedule.schema.json delete mode 100644 docs/entities/balance/ft-balance.schema.json delete mode 100644 docs/entities/balance/nft-balance.schema.json delete mode 100644 docs/entities/balance/stx-balance.schema.json delete mode 100644 docs/entities/blocks/block.example.json delete mode 100644 docs/entities/blocks/block.schema.json delete mode 100644 docs/entities/blocks/burn-block.example.json delete mode 100644 docs/entities/blocks/burn-block.schema.json delete mode 100644 docs/entities/blocks/nakamoto-block.example.json delete mode 100644 docs/entities/blocks/nakamoto-block.schema.json delete mode 100644 docs/entities/burnchain/reward-slot-holder.example.json delete mode 100644 docs/entities/burnchain/reward-slot-holder.schema.json delete mode 100644 docs/entities/burnchain/reward.example.json delete mode 100644 docs/entities/burnchain/reward.schema.json delete mode 100644 docs/entities/burnchain/rewards-total.example.json delete mode 100644 docs/entities/burnchain/rewards-total.schema.json delete mode 100644 docs/entities/contracts/get-specific-data-map-inside-contract.example.json delete mode 100644 docs/entities/contracts/read-only-function-args-request-body.example.json delete mode 100644 docs/entities/contracts/read-only-function-args.schema.json delete mode 100644 docs/entities/contracts/smart-contract.example.json delete mode 100644 docs/entities/contracts/smart-contract.schema.json delete mode 100644 docs/entities/info/block-time.example.json delete mode 100644 docs/entities/info/block-time.schema.json delete mode 100644 docs/entities/info/chain-tip.example.json delete mode 100644 docs/entities/info/chain-tip.schema.json delete mode 100644 docs/entities/mempool-transactions/abstract-transaction.schema.json delete mode 100644 docs/entities/mempool-transactions/transaction-0-token-transfer.schema.json delete mode 100644 docs/entities/mempool-transactions/transaction-1-smart-contract.schema.json delete mode 100644 docs/entities/mempool-transactions/transaction-2-contract-call.schema.json delete mode 100644 docs/entities/mempool-transactions/transaction-3-poison-microblock.schema.json delete mode 100644 docs/entities/mempool-transactions/transaction-4-coinbase.schema.json delete mode 100644 docs/entities/mempool-transactions/transaction-7-tenure-change.schema.json delete mode 100644 docs/entities/mempool-transactions/transaction-status.schema.json delete mode 100644 docs/entities/mempool-transactions/transaction.schema.json delete mode 100644 docs/entities/microblocks/microblock.example.json delete mode 100644 docs/entities/microblocks/microblock.schema.json delete mode 100644 docs/entities/nft-events/nft-event.example.json delete mode 100644 docs/entities/nft-events/nft-event.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-0-stx.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-1-fungible.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-2-non-fungible.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-fungible-condition-code.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-mode.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-non-fungible-condition-code.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-principal-type.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-principal.schema.json delete mode 100644 docs/entities/post-conditions/post-condition-type.schema.json delete mode 100644 docs/entities/post-conditions/post-condition.schema.json delete mode 100644 docs/entities/rosetta/rosetta-account-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-account.schema.json delete mode 100644 docs/entities/rosetta/rosetta-amount-max-fee.schema.json delete mode 100644 docs/entities/rosetta/rosetta-amount.schema.json delete mode 100644 docs/entities/rosetta/rosetta-block-identifier-hash.schema.json delete mode 100644 docs/entities/rosetta/rosetta-block-identifier-height.schema.json delete mode 100644 docs/entities/rosetta/rosetta-block-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-block.schema.json delete mode 100644 docs/entities/rosetta/rosetta-coin-change.schema.json delete mode 100644 docs/entities/rosetta/rosetta-coin.schema.json delete mode 100644 docs/entities/rosetta/rosetta-construction-options.schema.json delete mode 100644 docs/entities/rosetta/rosetta-currency.schema.json delete mode 100644 docs/entities/rosetta/rosetta-error-no-details.schema.json delete mode 100644 docs/entities/rosetta/rosetta-error.schema.json delete mode 100644 docs/entities/rosetta/rosetta-genesis-block-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-network-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-network-peers.schema.json delete mode 100644 docs/entities/rosetta/rosetta-oldest-block-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-operation-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-operation-statuses.schema.json delete mode 100644 docs/entities/rosetta/rosetta-operation.schema.json delete mode 100644 docs/entities/rosetta/rosetta-other-transaction-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-parent-block-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-partial-block-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-public-key.schema.json delete mode 100644 docs/entities/rosetta/rosetta-related-operation.schema.json delete mode 100644 docs/entities/rosetta/rosetta-signature-type.schema.json delete mode 100644 docs/entities/rosetta/rosetta-signature.schema.json delete mode 100644 docs/entities/rosetta/rosetta-signing-payload.schema.json delete mode 100644 docs/entities/rosetta/rosetta-sub-account.schema.json delete mode 100644 docs/entities/rosetta/rosetta-sync-status.schema.json delete mode 100644 docs/entities/rosetta/rosetta-transaction-identifier.schema.json delete mode 100644 docs/entities/rosetta/rosetta-transaction.schema.json delete mode 100644 docs/entities/smart-contracts/smart-contract-status.example.json delete mode 100644 docs/entities/smart-contracts/smart-contract-status.schema.json delete mode 100644 docs/entities/stacking/pool-delegation.example.json delete mode 100644 docs/entities/stacking/pool-delegation.schema.json delete mode 100644 docs/entities/stacking/pox-cycle.example.json delete mode 100644 docs/entities/stacking/pox-cycle.schema.json delete mode 100644 docs/entities/stacking/signer.example.json delete mode 100644 docs/entities/stacking/signer.schema.json delete mode 100644 docs/entities/stacking/stacker.example.json delete mode 100644 docs/entities/stacking/stacker.schema.json delete mode 100644 docs/entities/tokens/ft-holder-entry.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-history-event-0-tx-id.example.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-history-event-0-tx-id.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-history-event-1-tx-metadata.example.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-history-event-1-tx-metadata.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-history-event.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-holding-0-tx-id.example.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-holding-0-tx-id.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-holding-1-tx-metadata.example.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-holding-1-tx-metadata.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-holding.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-mint-0-tx-id.example.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-mint-0-tx-id.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-mint-1-tx-metadata.example.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-mint-1-tx-metadata.schema.json delete mode 100644 docs/entities/tokens/non-fungible-token-mint.schema.json delete mode 100644 docs/entities/transaction-events/abstract-transaction-event.schema.json delete mode 100644 docs/entities/transaction-events/asset-types/transaction-event-asset-type.schema.json delete mode 100644 docs/entities/transaction-events/asset-types/transaction-event-asset.schema.json delete mode 100644 docs/entities/transaction-events/transaction-event-fungible-asset.schema.json delete mode 100644 docs/entities/transaction-events/transaction-event-non-fungible-asset.schema.json delete mode 100644 docs/entities/transaction-events/transaction-event-smart-contract-log.example.json delete mode 100644 docs/entities/transaction-events/transaction-event-smart-contract-log.schema.json delete mode 100644 docs/entities/transaction-events/transaction-event-stx-asset.schema.json delete mode 100644 docs/entities/transaction-events/transaction-event-stx-lock.schema.json delete mode 100644 docs/entities/transaction-events/transaction-event-type.schema.json delete mode 100644 docs/entities/transaction-events/transaction-event.schema.json delete mode 100644 docs/entities/transactions/abstract-transaction.schema.json delete mode 100644 docs/entities/transactions/anchor-mode.schema.json delete mode 100644 docs/entities/transactions/base-transaction.schema.json delete mode 100644 docs/entities/transactions/transaction-0-token-transfer-metadata.schema.json delete mode 100644 docs/entities/transactions/transaction-0-token-transfer.example.json delete mode 100644 docs/entities/transactions/transaction-0-token-transfer.schema.json delete mode 100644 docs/entities/transactions/transaction-1-smart-contract-metadata.schema.json delete mode 100644 docs/entities/transactions/transaction-1-smart-contract.example.json delete mode 100644 docs/entities/transactions/transaction-1-smart-contract.schema.json delete mode 100644 docs/entities/transactions/transaction-2-contract-call-metadata.schema.json delete mode 100644 docs/entities/transactions/transaction-2-contract-call.example.json delete mode 100644 docs/entities/transactions/transaction-2-contract-call.schema.json delete mode 100644 docs/entities/transactions/transaction-3-poison-microblock-metadata.schema.json delete mode 100644 docs/entities/transactions/transaction-3-poison-microblock.schema.json delete mode 100644 docs/entities/transactions/transaction-4-coinbase-metadata.schema.json delete mode 100644 docs/entities/transactions/transaction-4-coinbase.example.json delete mode 100644 docs/entities/transactions/transaction-4-coinbase.schema.json delete mode 100644 docs/entities/transactions/transaction-7-tenure-change-metadata.schema.json delete mode 100644 docs/entities/transactions/transaction-7-tenure-change.example.json delete mode 100644 docs/entities/transactions/transaction-7-tenure-change.schema.json delete mode 100644 docs/entities/transactions/transaction-found.schema.json delete mode 100644 docs/entities/transactions/transaction-list.schema.json delete mode 100644 docs/entities/transactions/transaction-metadata.schema.json delete mode 100644 docs/entities/transactions/transaction-not-found.schema.json delete mode 100644 docs/entities/transactions/transaction-status.schema.json delete mode 100644 docs/entities/transactions/transaction-type.schema.json delete mode 100644 docs/entities/transactions/transaction.schema.json delete mode 100644 docs/entities/transactions/transactions-list-detail.example.json delete mode 100644 docs/entities/transfers/inbound-stx-transfer.example.json delete mode 100644 docs/entities/transfers/inbound-stx-transfer.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-address-balance-notification-response.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-address-balance-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-address-balance-subscription-request.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-address-tx-notification-response.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-address-tx-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-address-tx-subscription-request.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-block-notification-response.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-block-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-block-subscription-request.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-mempool-notification-response.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-mempool-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-mempool-subscription-request.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-microblock-notification-response.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-microblock-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-microblock-subscription-request.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-nft-asset-event-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-nft-asset-event-subscription-request.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-nft-collection-event-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-nft-collection-event-subscription-request.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-nft-event-notification-response.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-nft-event-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-nft-event-subscription-request.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-subscription-type.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-tx-update-notification-response.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-tx-update-subscription-params.schema.json delete mode 100644 docs/entities/ws-rpc/rpc-tx-update-subscription-request.schema.json rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-account-balance-request-body.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-account-balance-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-account-identifier-publickey-request-body.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-account-network-options-request-body.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-account-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-block-request-body.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-block-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-block-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-block-transaction-request-body.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-block-transaction-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-block-transaction-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-combine-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-combine-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-derive-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-derive-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-hash-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-hash-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-metadata-request-schema-body.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-metadata-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-metadata-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-parse-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-parse-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-payloads-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-payloads-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-preprocess-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-preprocess-response.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-preprocess-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-submit-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-construction-submit-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-hash-signed-transaction-request-schema-body.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-memphool-transaction-request-body.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-mempool-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-mempool-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-mempool-transaction-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-mempool-transaction-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-mempool-transaction.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-network-list-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-network-list-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-network-options-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-network-options-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-network-status-request.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-network-status-response.schema.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-network-transaction-from-signarures-request.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-submit-signed-transaction-request.example.json (100%) rename {docs/api/rosetta => src/rosetta/json-schemas}/rosetta-submit-unsigned-transaction-unsigned-payloads-request.example.json (100%) diff --git a/docs/api/address/get-address-assets.example.json b/docs/api/address/get-address-assets.example.json deleted file mode 100644 index 5c707f4c8..000000000 --- a/docs/api/address/get-address-assets.example.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 0, - "results": [ - { - "event_index": 0, - "event_type": "stx_asset", - "tx_id": "0xb31df5a363dad31723324cb5e0eefa04d491519fd30827a521cbc830114aa50c", - "asset": { - "asset_event_type": "transfer", - "sender": "STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6", - "recipient": "ST2TJRHDHMYBQ417HFB0BDX430TQA5PXRX6495G1V", - "amount": "500000" - } - } - ] -} diff --git a/docs/api/address/get-address-assets.schema.json b/docs/api/address/get-address-assets.schema.json deleted file mode 100644 index eb047d7c5..000000000 --- a/docs/api/address/get-address-assets.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET request that returns address assets", - "title": "AddressAssetsListResponse", - "type": "object", - "additionalProperties": false, - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30 - }, - "offset": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/transaction-events/transaction-event.schema.json" - } - } - } -} diff --git a/docs/api/address/get-address-balances.example.json b/docs/api/address/get-address-balances.example.json deleted file mode 100644 index 55dd0d487..000000000 --- a/docs/api/address/get-address-balances.example.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "stx": { - "balance": "1000000", - "total_sent": "0", - "total_received": "1000000", - "lock_tx_id": "0xec94e7d20af8979b44d17a0520c126bf742b999a0fc7ddbcbe0ab21b228ecc8c", - "locked": "50000", - "lock_height": 100, - "burnchain_lock_height": 100, - "burnchain_unlock_height": 200 - }, - "fungible_tokens": {}, - "non_fungible_tokens": {} -} diff --git a/docs/api/address/get-address-balances.schema.json b/docs/api/address/get-address-balances.schema.json deleted file mode 100644 index 0ee5ccf37..000000000 --- a/docs/api/address/get-address-balances.schema.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "description": "GET request that returns address balances", - "title": "AddressBalanceResponse", - "additionalProperties": false, - "type": "object", - "required": ["stx", "fungible_tokens", "non_fungible_tokens"], - "properties": { - "stx": { - "$ref": "../../entities/balance/stx-balance.schema.json" - }, - "fungible_tokens": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "$ref": "../../entities/balance/ft-balance.schema.json" - } - ] - } - }, - "non_fungible_tokens": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "$ref": "../../entities/balance/nft-balance.schema.json" - } - ] - } - }, - "token_offering_locked": { - "$ref": "../../entities/address/token-offering-locked.schema.json" - } - } -} diff --git a/docs/api/address/get-address-single-transaction-with-transfers.example.json b/docs/api/address/get-address-single-transaction-with-transfers.example.json deleted file mode 100644 index 0f1ba7643..000000000 --- a/docs/api/address/get-address-single-transaction-with-transfers.example.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "tx_id": "0x34d79c7cfc2fe525438736733e501a4bf0308a5556e3e080d1e2c0858aad7448", - "tx_type": "contract_call", - "nonce": 11, - "fee_rate": "346", - "sender_address": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "sponsored": false, - "post_condition_mode": "deny", - "tx_status": "success", - "block_hash": "0x13d1b4ad35c95bca209397420fb8af104d2929d91993ba056d7a1ca5470095f9", - "block_height": 3246, - "burn_block_time": 1613009951, - "burn_block_time_iso": "2021-02-11T02:19:11.000Z", - "canonical": true, - "is_unanchored": false, - "microblock_hash": "0x590a1bb1d7bcbeafce0a9fc8f8a69e369486192d14687fe95fbe4dc1c71d49df", - "microblock_sequence": 5, - "microblock_canonical": true, - "tx_index": 1, - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "350", - "principal": { - "type_id": "principal_standard", - "address": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE" - } - } - ], - "contract_call": { - "contract_id": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.send-many-memo", - "function_name": "send-many", - "function_signature": "(define-public (send-many (recipients (list 200 (tuple (memo (buff 34)) (to principal) (ustx uint))))))", - "function_args": [ - { - "hex": "0x0b000000020c00000003046d656d6f020000000966697273746d656d6f02746f05168c031b2db5895ece0cdfbf76e0b0e8af67226a6f047573747801000000000000000000000000000000960c00000003046d656d6f020000000a7365636f6e646d656d6f02746f05168974da696d74a16d0955bc8e55720dfd39e789cf047573747801000000000000000000000000000000c8", - "repr": "(list (tuple (memo 0x66697273746d656d6f) (to SP26066SDPP4NXKGCVYZQDR5GX2QPE8KADZ0YK2J7) (ustx u150)) (tuple (memo 0x7365636f6e646d656d6f) (to SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP) (ustx u200)))", - "name": "recipients", - "type": "(list 200 (tuple (memo (buff 34)) (to principal) (ustx uint)))" - } - ] - }, - "events": [], - "event_count": 4 -} diff --git a/docs/api/address/get-address-stx-balance.example.json b/docs/api/address/get-address-stx-balance.example.json deleted file mode 100644 index 41baa22f9..000000000 --- a/docs/api/address/get-address-stx-balance.example.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "balance": "1000000", - "total_sent": "0", - "total_received": "1000000", - "lock_tx_id": "0xec94e7d20af8979b44d17a0520c126bf742b999a0fc7ddbcbe0ab21b228ecc8c", - "locked": "50000", - "lock_height": 100, - "burnchain_lock_height": 100, - "burnchain_unlock_height": 200 -} diff --git a/docs/api/address/get-address-stx-balance.schema.json b/docs/api/address/get-address-stx-balance.schema.json deleted file mode 100644 index 9a3d9e638..000000000 --- a/docs/api/address/get-address-stx-balance.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "description": "GET request that returns address balances", - "title": "AddressStxBalanceResponse", - "type": "object", - "allOf": [ - { - "$ref": "../../entities/balance/stx-balance.schema.json" - }, - { - "type": "object", - "additionalProperties": false, - "properties": { - "token_offering_locked": { - "$ref": "../../entities/address/token-offering-locked.schema.json" - } - } - } - ] -} diff --git a/docs/api/address/get-address-stx-inbound.example.json b/docs/api/address/get-address-stx-inbound.example.json deleted file mode 100644 index ea5b562c7..000000000 --- a/docs/api/address/get-address-stx-inbound.example.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 0, - "results": [ - { - "sender": "ST1RZG804V6Y0N4XHQD3ZE2GE3XSCV3VHRKMA3GB0", - "amount": "123456789", - "memo": "0x00000000000000000000000000000000000000000000000000000000000000000000", - "block_height": 12345, - "tx_id": "0x29e25515652dad41ef675bd0670964e3d537b80ec19cf6ca6f1dd65d5bc642c5", - "transfer_type": "bulk-send", - "tx_index": 3 - } - ] -} diff --git a/docs/api/address/get-address-stx-inbound.schema.json b/docs/api/address/get-address-stx-inbound.schema.json deleted file mode 100644 index ea2b4e92e..000000000 --- a/docs/api/address/get-address-stx-inbound.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET request that returns a list of inbound STX transfers with a memo", - "title": "AddressStxInboundListResponse", - "additionalProperties": false, - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30 - }, - "offset": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/transfers/inbound-stx-transfer.schema.json" - } - } - } -} diff --git a/docs/api/address/get-address-transaction-events.example.json b/docs/api/address/get-address-transaction-events.example.json deleted file mode 100644 index 6e0410d54..000000000 --- a/docs/api/address/get-address-transaction-events.example.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 4, - "results": [ - { - "type": "stx", - "event_index": 0, - "data": { - "type": "transfer", - "amount": "200", - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP" - } - }, - { - "type": "stx", - "event_index": 1, - "data": { - "type": "transfer", - "amount": "150", - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SP26066SDPP4NXKGCVYZQDR5GX2QPE8KADZ0YK2J7" - } - }, - { - "type": "ft", - "event_index": 5, - "data": { - "type": "transfer", - "amount": "103", - "asset_identifier": "SP466FNC0P7JWTNM2R9T199QRZN1MYEDTAR0KP27.miamicoin-token::miamicoin", - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP" - } - }, - { - "type": "nft", - "event_index": 6, - "data": { - "type": "transfer", - "asset_identifier": "SP497E7RX3233ATBS2AB9G4WTHB63X5PBSP5VGAQ.boom-nfts::boom", - "value": { "hex": "0x00", "repr": "0" }, - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP" - } - } - ] -} diff --git a/docs/api/address/get-address-transaction-events.schema.json b/docs/api/address/get-address-transaction-events.schema.json deleted file mode 100644 index 10ca2eba5..000000000 --- a/docs/api/address/get-address-transaction-events.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET Address Transaction Events", - "title": "AddressTransactionEventListResponse", - "type": "object", - "additionalProperties": false, - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30 - }, - "offset": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/address/address-transaction-event.schema.json" - } - } - } -} diff --git a/docs/api/address/get-address-transactions-with-transfers.example.json b/docs/api/address/get-address-transactions-with-transfers.example.json deleted file mode 100644 index 7bb85eeec..000000000 --- a/docs/api/address/get-address-transactions-with-transfers.example.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 2, - "results": [ - { - "tx": { - "tx_id": "0x34d79c7cfc2fe525438736733e501a4bf0308a5556e3e080d1e2c0858aad7448", - "tx_type": "contract_call", - "nonce": 11, - "fee_rate": "346", - "sender_address": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "sponsored": false, - "post_condition_mode": "deny", - "tx_status": "success", - "block_hash": "0x13d1b4ad35c95bca209397420fb8af104d2929d91993ba056d7a1ca5470095f9", - "block_height": 3246, - "burn_block_time": 1613009951, - "burn_block_time_iso": "2021-02-11T02:19:11.000Z", - "canonical": true, - "is_unanchored": false, - "microblock_hash": "0x590a1bb1d7bcbeafce0a9fc8f8a69e369486192d14687fe95fbe4dc1c71d49df", - "microblock_sequence": 5, - "microblock_canonical": true, - "tx_index": 1, - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "350", - "principal": { - "type_id": "principal_standard", - "address": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE" - } - } - ], - "contract_call": { - "contract_id": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.send-many-memo", - "function_name": "send-many", - "function_signature": "(define-public (send-many (recipients (list 200 (tuple (memo (buff 34)) (to principal) (ustx uint))))))", - "function_args": [ - { - "hex": "0x0b000000020c00000003046d656d6f020000000966697273746d656d6f02746f05168c031b2db5895ece0cdfbf76e0b0e8af67226a6f047573747801000000000000000000000000000000960c00000003046d656d6f020000000a7365636f6e646d656d6f02746f05168974da696d74a16d0955bc8e55720dfd39e789cf047573747801000000000000000000000000000000c8", - "repr": "(list (tuple (memo 0x66697273746d656d6f) (to SP26066SDPP4NXKGCVYZQDR5GX2QPE8KADZ0YK2J7) (ustx u150)) (tuple (memo 0x7365636f6e646d656d6f) (to SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP) (ustx u200)))", - "name": "recipients", - "type": "(list 200 (tuple (memo (buff 34)) (to principal) (ustx uint)))" - } - ] - }, - "events": [], - "event_count": 4 - }, - "stx_sent": "696", - "stx_received": "0", - "stx_transfers": [ - { - "amount": "200", - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP" - }, - { - "amount": "150", - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SP26066SDPP4NXKGCVYZQDR5GX2QPE8KADZ0YK2J7" - } - ], - "ft_transfers": [ - { - "amount": "103", - "asset_identifier": "SP466FNC0P7JWTNM2R9T199QRZN1MYEDTAR0KP27.miamicoin-token::miamicoin", - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP" - } - ], - "nft_transfers": [ - { - "asset_identifier": "SP497E7RX3233ATBS2AB9G4WTHB63X5PBSP5VGAQ.boom-nfts::boom", - "value": { "hex": "0x00", "repr": "0" }, - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP" - } - ] - }, - { - "tx": { - "tx_id": "0x628045bff13658396277d618e9a3e4d468a4b3876eff4941d2f13ed88cd7abb7", - "tx_type": "token_transfer", - "nonce": 8, - "fee_rate": "180", - "sender_address": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "sponsored": false, - "post_condition_mode": "deny", - "tx_status": "success", - "block_hash": "0x2b8599696f64e2456c67b1ab5e63078f99d87bd1d903c37fdcfd73b1890a7551", - "block_height": 1761, - "burn_block_time": 1611968237, - "burn_block_time_iso": "2021-01-30T00:57:17.000Z", - "canonical": true, - "is_unanchored": false, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "tx_index": 2, - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "token_transfer": { - "recipient_address": "SPRSM0R2JZWBCZ39NQBARWTMX9TE99K3JK8D5KMX", - "amount": "100000", - "memo": "0x57656c636f6d6520746f20426f6f6d2e000000000000000000000000000000000000" - }, - "events": [], - "event_count": 1 - }, - "stx_sent": "100180", - "stx_received": "0", - "stx_transfers": [ - { - "amount": "100000", - "sender": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "recipient": "SPRSM0R2JZWBCZ39NQBARWTMX9TE99K3JK8D5KMX" - } - ], - "ft_transfers": [], - "nft_transfers": [] - } - ] -} diff --git a/docs/api/address/get-address-transactions-with-transfers.schema.json b/docs/api/address/get-address-transactions-with-transfers.schema.json deleted file mode 100644 index 4ac28e8dd..000000000 --- a/docs/api/address/get-address-transactions-with-transfers.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET request that returns account transactions", - "title": "AddressTransactionsWithTransfersListResponse", - "type": "object", - "additionalProperties": false, - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30 - }, - "offset": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/address/transaction-with-transfers.schema.json" - } - } - } -} diff --git a/docs/api/address/get-address-transactions.example.json b/docs/api/address/get-address-transactions.example.json deleted file mode 100644 index 0693d2e6e..000000000 --- a/docs/api/address/get-address-transactions.example.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 4989, - "results": [ - { - "tx_id": "0xb16077b94222bc1466396d30df13db460864e85ce929a20aae0a2ac80b31e4e2", - "tx_status": "success", - "tx_type": "coinbase", - "fee_rate": "0", - "sender_address": "ST2TJRHDHMYBQ417HFB0BDX430TQA5PXRX6495G1V", - "sponsored": false, - "post_condition_mode": "deny", - "block_hash": "0x83f84f814c1b00ddb672d93b97d06c8326f76746d90a979c12b69e54beb73f69", - "block_height": 5603, - "burn_block_time": 1594335838, - "canonical": true, - "is_unanchored": false, - "microblock_hash": "0x590a1bb1d7bcbeafce0a9fc8f8a69e369486192d14687fe95fbe4dc1c71d49df", - "microblock_sequence": 5, - "microblock_canonical": true, - "tx_index": 0, - "coinbase_payload": { - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - } - ] -} diff --git a/docs/api/address/get-address-transactions.schema.json b/docs/api/address/get-address-transactions.schema.json deleted file mode 100644 index 6c53e92be..000000000 --- a/docs/api/address/get-address-transactions.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "description": "GET request that returns account transactions", - "title": "AddressTransactionsListResponse", - "type": "object", - "additionalProperties": false, - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30 - }, - "offset": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "type": "object", - "anyOf": [ - { - "$ref": "../../entities/mempool-transactions/transaction.schema.json" - }, - { - "$ref": "../../entities/transactions/transaction.schema.json" - } - ] - } - } - } -} diff --git a/docs/api/address/get-v2-address-transactions.example.json b/docs/api/address/get-v2-address-transactions.example.json deleted file mode 100644 index da6f6f043..000000000 --- a/docs/api/address/get-v2-address-transactions.example.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 2, - "results": [ - { - "tx": { - "tx_id": "0x34d79c7cfc2fe525438736733e501a4bf0308a5556e3e080d1e2c0858aad7448", - "tx_type": "contract_call", - "nonce": 11, - "fee_rate": "346", - "sender_address": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "sponsored": false, - "post_condition_mode": "deny", - "tx_status": "success", - "block_hash": "0x13d1b4ad35c95bca209397420fb8af104d2929d91993ba056d7a1ca5470095f9", - "block_height": 3246, - "burn_block_time": 1613009951, - "burn_block_time_iso": "2021-02-11T02:19:11.000Z", - "canonical": true, - "is_unanchored": false, - "microblock_hash": "0x590a1bb1d7bcbeafce0a9fc8f8a69e369486192d14687fe95fbe4dc1c71d49df", - "microblock_sequence": 5, - "microblock_canonical": true, - "tx_index": 1, - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "350", - "principal": { - "type_id": "principal_standard", - "address": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE" - } - } - ], - "contract_call": { - "contract_id": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.send-many-memo", - "function_name": "send-many", - "function_signature": "(define-public (send-many (recipients (list 200 (tuple (memo (buff 34)) (to principal) (ustx uint))))))", - "function_args": [ - { - "hex": "0x0b000000020c00000003046d656d6f020000000966697273746d656d6f02746f05168c031b2db5895ece0cdfbf76e0b0e8af67226a6f047573747801000000000000000000000000000000960c00000003046d656d6f020000000a7365636f6e646d656d6f02746f05168974da696d74a16d0955bc8e55720dfd39e789cf047573747801000000000000000000000000000000c8", - "repr": "(list (tuple (memo 0x66697273746d656d6f) (to SP26066SDPP4NXKGCVYZQDR5GX2QPE8KADZ0YK2J7) (ustx u150)) (tuple (memo 0x7365636f6e646d656d6f) (to SP24Q9PK9DNTA2V89APY8WNBJ1QYKKSW9SWB04RJP) (ustx u200)))", - "name": "recipients", - "type": "(list 200 (tuple (memo (buff 34)) (to principal) (ustx uint)))" - } - ] - }, - "events": [], - "event_count": 4 - }, - "stx_sent": "696", - "stx_received": "0", - "events": { - "stx": { - "transfer": 2, - "mint": 0, - "burn": 0 - }, - "ft": { - "transfer": 1, - "mint": 0, - "burn": 0 - }, - "nft": { - "transfer": 1, - "mint": 0, - "burn": 0 - } - } - }, - { - "tx": { - "tx_id": "0x628045bff13658396277d618e9a3e4d468a4b3876eff4941d2f13ed88cd7abb7", - "tx_type": "token_transfer", - "nonce": 8, - "fee_rate": "180", - "sender_address": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE", - "sponsored": false, - "post_condition_mode": "deny", - "tx_status": "success", - "block_hash": "0x2b8599696f64e2456c67b1ab5e63078f99d87bd1d903c37fdcfd73b1890a7551", - "block_height": 1761, - "burn_block_time": 1611968237, - "burn_block_time_iso": "2021-01-30T00:57:17.000Z", - "canonical": true, - "is_unanchored": false, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "tx_index": 2, - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "token_transfer": { - "recipient_address": "SPRSM0R2JZWBCZ39NQBARWTMX9TE99K3JK8D5KMX", - "amount": "100000", - "memo": "0x57656c636f6d6520746f20426f6f6d2e000000000000000000000000000000000000" - }, - "events": [], - "event_count": 1 - }, - "stx_sent": "100180", - "stx_received": "0", - "events": { - "stx": { - "transfer": 1, - "mint": 0, - "burn": 0 - }, - "ft": { - "transfer": 0, - "mint": 0, - "burn": 0 - }, - "nft": { - "transfer": 0, - "mint": 0, - "burn": 0 - } - } - } - ] -} diff --git a/docs/api/address/get-v2-address-transactions.schema.json b/docs/api/address/get-v2-address-transactions.schema.json deleted file mode 100644 index d3f504dfd..000000000 --- a/docs/api/address/get-v2-address-transactions.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET Address Transactions", - "title": "AddressTransactionsV2ListResponse", - "type": "object", - "additionalProperties": false, - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30 - }, - "offset": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/address/address-transaction.schema.json" - } - } - } -} diff --git a/docs/api/blocks/get-average-times.example.json b/docs/api/blocks/get-average-times.example.json deleted file mode 100644 index 26a75f731..000000000 --- a/docs/api/blocks/get-average-times.example.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "last_1h": 846.75, - "last_24h": 635.2, - "last_7d": 731.26, - "last_30d": 738.67 -} diff --git a/docs/api/blocks/get-average-times.schema.json b/docs/api/blocks/get-average-times.schema.json deleted file mode 100644 index 904b19ec7..000000000 --- a/docs/api/blocks/get-average-times.schema.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "object", - "title": "AverageBlockTimesResponse", - "description": "Request to fetch average block times (in seconds)", - "additionalProperties": false, - "required": [ - "last_1h", - "last_24h", - "last_7d", - "last_30d" - ], - "properties": { - "last_1h": { - "type": "number", - "description": "Average block times over the last hour (in seconds)" - }, - "last_24h": { - "type": "number", - "description": "Average block times over the last 24 hours (in seconds)" - }, - "last_7d": { - "type": "number", - "description": "Average block times over the last 7 days (in seconds)" - }, - "last_30d": { - "type": "number", - "description": "Average block times over the last 30 days (in seconds)" - } - } -} diff --git a/docs/api/blocks/get-blocks.example.json b/docs/api/blocks/get-blocks.example.json deleted file mode 100644 index 79afbddc4..000000000 --- a/docs/api/blocks/get-blocks.example.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "limit": 1, - "offset": 0, - "total": 21707, - "results": [ - { - "canonical": true, - "height": 21698, - "hash": "0x9be3e38eab9c7d094fd51792383c66706838d6392e95bc05cc730b8f7520e352", - "parent_block_hash": "0x76ee36d1d6c88e56b5c0e80f0d7bc7d3492141faf1b900efb19fcd00457d4654", - "burn_block_time": 1626281749, - "burn_block_time_iso": "2021-07-14T16:55:49.000Z", - "burn_block_hash": "0x0000000000000000000ea16f8e906e85ee1cb4dff1e5424e93843b3cec8b0bcb", - "burn_block_height": 691014, - "miner_txid": "0x118f7122a69441d13e6a3dfd4c3b0f9950be25195bb8126aae7fadea1aa9185d", - "parent_microblock_hash": "0x54647c277eefe60519b407f2c897749005fdb7f831034135063b2ee43fdacb04", - "parent_microblock_sequence": 3, - "txs": [ - "0x76f58b2eaff65a07a5971b241c4e71fee92ee0f9396809f911f90839f9004cac", - "0x32972d9052b068f218f6e13451f7aff937099b74bbf95fac7d9402295b1b3941", - "0x8cd30724c02a9cc1d8879a34dc136ebfdb2008420badcfb5947b92f85ebce79b", - "0xf5c1577f42d3753a508101e045dd2dc60491eb0aa552e0ecd0ad37cc697143f4", - "0x35e4c20e2838f999e0cf0b40c5fabce154c2df1912a1074150d26784c53f7a20", - "0x501eb42b82e5b7a7350b47fa143cd4e90bb46d43e4a7d22830b2bf2aa70b7922" - ], - "microblocks_accepted": [ - "0x54647c277eefe60519b407f2c897749005fdb7f831034135063b2ee43fdacb04", - "0xdaf61d2b355f35c94cf019af99aeb73d8e7db7301c7cd693a464ebd1cfc2228c", - "0xb9e9b308cf9621ecbf66ca7b4689fe384b9b67c4588ec827d8163ab602fb935e", - "0x754562cba6ec243f90485e97778ab472f462fd123ef5b83cc79d8759ca8875f5" - ], - "microblocks_streamed": [ - "0x54647c277eefe60519b407f2c897749005fdb7f831034135063b2ee43fdacb04", - "0xdaf61d2b355f35c94cf019af99aeb73d8e7db7301c7cd693a464ebd1cfc2228c", - "0xb9e9b308cf9621ecbf66ca7b4689fe384b9b67c4588ec827d8163ab602fb935e", - "0x754562cba6ec243f90485e97778ab472f462fd123ef5b83cc79d8759ca8875f5" - ] - } - ] -} diff --git a/docs/api/blocks/get-blocks.schema.json b/docs/api/blocks/get-blocks.schema.json deleted file mode 100644 index af71a2ac7..000000000 --- a/docs/api/blocks/get-blocks.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns blocks", - "additionalProperties": false, - "title": "BlockListResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30, - "description": "The number of blocks to return" - }, - "offset": { - "type": "integer", - "description": "The number to blocks to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "The number of blocks available" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/blocks/block.schema.json" - } - } - } -} diff --git a/docs/api/blocks/get-burn-blocks.example.json b/docs/api/blocks/get-burn-blocks.example.json deleted file mode 100644 index b010587df..000000000 --- a/docs/api/blocks/get-burn-blocks.example.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "limit": 1, - "offset": 0, - "total": 21707, - "results": [ - { - "burn_block_time": 1626281749, - "burn_block_time_iso": "2021-07-14T16:55:49.000Z", - "burn_block_hash": "0x0000000000000000000ea16f8e906e85ee1cb4dff1e5424e93843b3cec8b0bcb", - "burn_block_height": 691014, - "stacks_blocks": [ - "0x54647c277eefe60519b407f2c897749005fdb7f831034135063b2ee43fdacb04", - "0xdaf61d2b355f35c94cf019af99aeb73d8e7db7301c7cd693a464ebd1cfc2228c", - "0xb9e9b308cf9621ecbf66ca7b4689fe384b9b67c4588ec827d8163ab602fb935e", - "0x754562cba6ec243f90485e97778ab472f462fd123ef5b83cc79d8759ca8875f5" - ], - "avg_block_time": 15.3, - "total_tx_count": 728 - } - ] -} diff --git a/docs/api/blocks/get-burn-blocks.schema.json b/docs/api/blocks/get-burn-blocks.schema.json deleted file mode 100644 index a1802db9e..000000000 --- a/docs/api/blocks/get-burn-blocks.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns burn blocks", - "additionalProperties": false, - "title": "BurnBlockListResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30, - "description": "The number of burn blocks to return" - }, - "offset": { - "type": "integer", - "description": "The number to burn blocks to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "The number of burn blocks available (regardless of filter parameters)" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/blocks/burn-block.schema.json" - } - } - } -} diff --git a/docs/api/blocks/get-nakamoto-blocks.example.json b/docs/api/blocks/get-nakamoto-blocks.example.json deleted file mode 100644 index a06672ef5..000000000 --- a/docs/api/blocks/get-nakamoto-blocks.example.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "limit": 1, - "offset": 0, - "total": 21707, - "results": [ - { - "canonical": true, - "height": 21698, - "hash": "0x9be3e38eab9c7d094fd51792383c66706838d6392e95bc05cc730b8f7520e352", - "parent_block_hash": "0x76ee36d1d6c88e56b5c0e80f0d7bc7d3492141faf1b900efb19fcd00457d4654", - "burn_block_time": 1626281749, - "burn_block_time_iso": "2021-07-14T16:55:49.000Z", - "burn_block_hash": "0x0000000000000000000ea16f8e906e85ee1cb4dff1e5424e93843b3cec8b0bcb", - "burn_block_height": 691014, - "miner_txid": "0x118f7122a69441d13e6a3dfd4c3b0f9950be25195bb8126aae7fadea1aa9185d", - "txs": [ - "0x76f58b2eaff65a07a5971b241c4e71fee92ee0f9396809f911f90839f9004cac", - "0x32972d9052b068f218f6e13451f7aff937099b74bbf95fac7d9402295b1b3941", - "0x8cd30724c02a9cc1d8879a34dc136ebfdb2008420badcfb5947b92f85ebce79b", - "0xf5c1577f42d3753a508101e045dd2dc60491eb0aa552e0ecd0ad37cc697143f4", - "0x35e4c20e2838f999e0cf0b40c5fabce154c2df1912a1074150d26784c53f7a20", - "0x501eb42b82e5b7a7350b47fa143cd4e90bb46d43e4a7d22830b2bf2aa70b7922" - ] - } - ] -} diff --git a/docs/api/blocks/get-nakamoto-blocks.schema.json b/docs/api/blocks/get-nakamoto-blocks.schema.json deleted file mode 100644 index eac4ab5f7..000000000 --- a/docs/api/blocks/get-nakamoto-blocks.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns blocks", - "additionalProperties": false, - "title": "NakamotoBlockListResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30, - "description": "The number of blocks to return" - }, - "offset": { - "type": "integer", - "description": "The number to blocks to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "The number of blocks available" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/blocks/nakamoto-block.schema.json" - } - } - } -} diff --git a/docs/api/bns/errors/bns-error.schema.json b/docs/api/bns/errors/bns-error.schema.json deleted file mode 100644 index f2af55e22..000000000 --- a/docs/api/bns/errors/bns-error.schema.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "title": "BnsError", - "description": "Error", - "type": "object", - "additionalProperties": false, - "properties": { - "error": { "type": "string" } - } -} diff --git a/docs/api/bns/errors/bns-invalid-name-subdomain.example.json b/docs/api/bns/errors/bns-invalid-name-subdomain.example.json deleted file mode 100644 index 8784df074..000000000 --- a/docs/api/bns/errors/bns-invalid-name-subdomain.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "Invalid name or subdomain" -} diff --git a/docs/api/bns/errors/bns-invalid-page.example.json b/docs/api/bns/errors/bns-invalid-page.example.json deleted file mode 100644 index 5b3651c6e..000000000 --- a/docs/api/bns/errors/bns-invalid-page.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "Invalid page" -} diff --git a/docs/api/bns/errors/bns-invalid-tx-id.example.json b/docs/api/bns/errors/bns-invalid-tx-id.example.json deleted file mode 100644 index 5bb54a089..000000000 --- a/docs/api/bns/errors/bns-invalid-tx-id.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "Invalid txid" -} diff --git a/docs/api/bns/errors/bns-no-such-name.example.json b/docs/api/bns/errors/bns-no-such-name.example.json deleted file mode 100644 index d3ac9e390..000000000 --- a/docs/api/bns/errors/bns-no-such-name.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "No such name" -} diff --git a/docs/api/bns/errors/bns-no-such-namespace.example.json b/docs/api/bns/errors/bns-no-such-namespace.example.json deleted file mode 100644 index fe8af757c..000000000 --- a/docs/api/bns/errors/bns-no-such-namespace.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "No such namespace" -} diff --git a/docs/api/bns/errors/bns-no-zone-file.example.json b/docs/api/bns/errors/bns-no-zone-file.example.json deleted file mode 100644 index f566dccd9..000000000 --- a/docs/api/bns/errors/bns-no-zone-file.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "No zone file for name" -} diff --git a/docs/api/bns/errors/bns-unsupported-blockchain.example.json b/docs/api/bns/errors/bns-unsupported-blockchain.example.json deleted file mode 100644 index 94991c15c..000000000 --- a/docs/api/bns/errors/bns-unsupported-blockchain.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "Unsupported blockchain" -} diff --git a/docs/api/bns/manage-names/bns-fetch-zone-file-response.example.json b/docs/api/bns/manage-names/bns-fetch-zone-file-response.example.json deleted file mode 100644 index 211a3c56d..000000000 --- a/docs/api/bns/manage-names/bns-fetch-zone-file-response.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "zonefile": "$ORIGIN bar.test\n$TTL 3600\n_https._tcp URI 10 1 \"https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json\"\n" -} diff --git a/docs/api/bns/manage-names/bns-fetch-zone-file-response.schema.json b/docs/api/bns/manage-names/bns-fetch-zone-file-response.schema.json deleted file mode 100644 index 938974739..000000000 --- a/docs/api/bns/manage-names/bns-fetch-zone-file-response.schema.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "title": "BnsFetchFileZoneResponse", - "description": "Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.", - "anyOf": [ - { - "type": "object", - "additionalProperties": false, - "properties": { - "zonefile": { - "type": "string", - "pattern": ".+" - } - } - }, - { - "type": "object", - "additionalProperties": false, - "properties": { - "error": { - "type": "string", - "pattern": ".+" - } - } - } - ] -} diff --git a/docs/api/bns/name-querying/bns-get-all-names-response.example.json b/docs/api/bns/name-querying/bns-get-all-names-response.example.json deleted file mode 100644 index 3dabcfde0..000000000 --- a/docs/api/bns/name-querying/bns-get-all-names-response.example.json +++ /dev/null @@ -1 +0,0 @@ -["aldenquimby.id", "aldeoryn.id", "alderete.id", "aldert.id", "aldi.id", "aldighieri.id"] diff --git a/docs/api/bns/name-querying/bns-get-all-names-response.schema.json b/docs/api/bns/name-querying/bns-get-all-names-response.schema.json deleted file mode 100644 index c366694c7..000000000 --- a/docs/api/bns/name-querying/bns-get-all-names-response.schema.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "title": "BnsGetAllNamesResponse", - "description": "Fetch a list of all names known to the node.", - "type": "array", - "items": { - "type": "string", - "pattern": "^([a-z0-9\\-_.+]{3,37})$" - } -} diff --git a/docs/api/bns/name-querying/bns-get-all-subdomains-response.example.json b/docs/api/bns/name-querying/bns-get-all-subdomains-response.example.json deleted file mode 100644 index 6e4811001..000000000 --- a/docs/api/bns/name-querying/bns-get-all-subdomains-response.example.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - "collegeinfogeek.verified.podcast", - "collider.verified.podcast", - "combatandclassics.verified.podcast", - "combatjack.verified.podcast", - "comedybangbang.verified.podcast", - "comedybutton.verified.podcast", - "commonsense.verified.podcast", - "concilio002.personal.id" -] diff --git a/docs/api/bns/name-querying/bns-get-all-subdomains-response.schema.json b/docs/api/bns/name-querying/bns-get-all-subdomains-response.schema.json deleted file mode 100644 index ecea3ba9d..000000000 --- a/docs/api/bns/name-querying/bns-get-all-subdomains-response.schema.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "title": "BnsGetAllSubdomainsResponse", - "description": "Fetch a list of all subdomains known to the node.", - "type": "array", - "items": { - "type": "string", - "pattern": "^([a-z0-9\\-_.+]{3,37}).([a-z0-9\\-_.+]{3,37})$" - } -} diff --git a/docs/api/bns/name-querying/bns-get-historical-zone-file-response.example.json b/docs/api/bns/name-querying/bns-get-historical-zone-file-response.example.json deleted file mode 100644 index fa12fce8b..000000000 --- a/docs/api/bns/name-querying/bns-get-historical-zone-file-response.example.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "title": "BnsFetchHistoricalZoneFileResponse", - "description": "Fetches the historical zonefile specified by the username and zone hash.", - "anyOf": [ - { - "type": "object", - "properties": { - "zonefile": { "type": "string" } - } - }, - { - "type": "object", - "properties": { - "error": { "type": "string" } - } - } - ] -} diff --git a/docs/api/bns/name-querying/bns-get-historical-zone-file-response.schema.json b/docs/api/bns/name-querying/bns-get-historical-zone-file-response.schema.json deleted file mode 100644 index 635aed9d9..000000000 --- a/docs/api/bns/name-querying/bns-get-historical-zone-file-response.schema.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "title": "BnsFetchHistoricalZoneFileResponse", - "description": "Fetches the historical zonefile specified by the username and zone hash.", - "anyOf": [ - { - "type": "object", - "additionalProperties": false, - "properties": { - "zonefile": { "type": "string" } - } - }, - { - "type": "object", - "additionalProperties": false, - "properties": { - "error": { "type": "string" } - } - } - ] -} diff --git a/docs/api/bns/name-querying/bns-get-name-info.response.example.json b/docs/api/bns/name-querying/bns-get-name-info.response.example.json deleted file mode 100644 index f8e2533f6..000000000 --- a/docs/api/bns/name-querying/bns-get-name-info.response.example.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "address": "1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs", - "blockchain": "bitcoin", - "expire_block": 599266, - "grace_period": false, - "last_txid": "1edfa419f7b83f33e00830bc9409210da6c6d1db60f99eda10c835aa339cad6b", - "renewal_deadline": 604266, - "resolver": null, - "status": "registered", - "zonefile": "$ORIGIN muneeb.id\n$TTL 3600\n_http._tcp IN URI 10 1 \"https://gaia.blockstack.org/hub/1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs/0/profile.json\"\n", - "zonefile_hash": "37aecf837c6ae9bdc9dbd98a268f263dacd00361" -} diff --git a/docs/api/bns/name-querying/bns-get-name-info.response.schema.json b/docs/api/bns/name-querying/bns-get-name-info.response.schema.json deleted file mode 100644 index dcb79232c..000000000 --- a/docs/api/bns/name-querying/bns-get-name-info.response.schema.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "title": "BnsGetNameInfoResponse", - "description": "Get name details", - "type": "object", - "additionalProperties": false, - "required": ["address", "blockchain", "last_txid", "status", "zonefile", "zonefile_hash"], - "properties": { - "address": { - "type": "string" - }, - "blockchain": { - "type": "string", - "pattern": "^stacks$" - }, - "expire_block": { - "type": "integer", - "minimum": 0 - }, - "grace_period": { - "type": "integer", - "minimum": 0 - }, - "last_txid": { - "type": "string" - }, - "resolver": { - "type": "string" - }, - "status": { - "type": "string" - }, - "zonefile": { - "type": "string" - }, - "zonefile_hash": { - "type": "string" - } - } -} diff --git a/docs/api/bns/name-querying/bns-get-name-price-response.example.json b/docs/api/bns/name-querying/bns-get-name-price-response.example.json deleted file mode 100644 index 7246260e8..000000000 --- a/docs/api/bns/name-querying/bns-get-name-price-response.example.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name_price": { - "units": "STX", - "amount": "100000" - } -} diff --git a/docs/api/bns/name-querying/bns-get-name-price-response.schema.json b/docs/api/bns/name-querying/bns-get-name-price-response.schema.json deleted file mode 100644 index 12423f386..000000000 --- a/docs/api/bns/name-querying/bns-get-name-price-response.schema.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "BnsGetNamePriceResponse", - "description": "Fetch price for name.", - "additionalProperties": false, - "required": [ "units", "amount" ], - "type": "object", - "properties": { - "units": { "type": "string" }, - "amount": { "type": "string", "pattern": "^[0-9]+$" } - } -} diff --git a/docs/api/bns/name-querying/bns-get-names-owned-by-address-response.example.json b/docs/api/bns/name-querying/bns-get-names-owned-by-address-response.example.json deleted file mode 100644 index 8e57ef78e..000000000 --- a/docs/api/bns/name-querying/bns-get-names-owned-by-address-response.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "names": ["muneeb.id"] -} diff --git a/docs/api/bns/name-querying/bns-get-names-owned-by-address-response.schema.json b/docs/api/bns/name-querying/bns-get-names-owned-by-address-response.schema.json deleted file mode 100644 index 1207085ea..000000000 --- a/docs/api/bns/name-querying/bns-get-names-owned-by-address-response.schema.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title": "BnsNamesOwnByAddressResponse", - "description": "Retrieves a list of names owned by the address provided.", - "additionalProperties": false, - "required": ["names"], - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string", - "pattern": "^([a-z0-9-_.+]{3,37})$" - } - } - } -} diff --git a/docs/api/bns/name-querying/bns-get-subdomain-at-tx-response.example.json b/docs/api/bns/name-querying/bns-get-subdomain-at-tx-response.example.json deleted file mode 100644 index 289046aaf..000000000 --- a/docs/api/bns/name-querying/bns-get-subdomain-at-tx-response.example.json +++ /dev/null @@ -1,34 +0,0 @@ -[ - { - "accepted": 1, - "block_height": 546199, - "domain": "id.blockstack", - "fully_qualified_subdomain": "nturl345.id.blockstack", - "missing": "", - "owner": "17Q8hcsxRLCk3ypJiGeXQv9tFK9GnHr5Ea", - "parent_zonefile_hash": "58224144791919f6206251a9960a2dd5723b96b6", - "parent_zonefile_index": 95780, - "resolver": "https://registrar.blockstack.org", - "sequence": 0, - "signature": "None", - "txid": "d04d708472ea3c147f50e43264efdb1535f71974053126dc4db67b3ac19d41fe", - "zonefile_hash": "d3bdf1cf010aac3f21fac473e41450f5357e0817", - "zonefile_offset": 0 - }, - { - "accepted": 1, - "block_height": 546199, - "domain": "id.blockstack", - "fully_qualified_subdomain": "dwerner1.id.blockstack", - "missing": "", - "owner": "17tFeKEBMUAAiHVsCgqKo8ccwYqq7aCn9X", - "parent_zonefile_hash": "58224144791919f6206251a9960a2dd5723b96b6", - "parent_zonefile_index": 95780, - "resolver": "https://registrar.blockstack.org", - "sequence": 0, - "signature": "None", - "txid": "d04d708472ea3c147f50e43264efdb1535f71974053126dc4db67b3ac19d41fe", - "zonefile_hash": "ab79b1774fa7a4c5709b6ad4e5892fb7c0f79765", - "zonefile_offset": 1 - } -] diff --git a/docs/api/bns/name-querying/bns-get-subdomain-at-tx-response.schema.json b/docs/api/bns/name-querying/bns-get-subdomain-at-tx-response.schema.json deleted file mode 100644 index 11a3ea30b..000000000 --- a/docs/api/bns/name-querying/bns-get-subdomain-at-tx-response.schema.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "title": "BnsGetSubdomainAtTx", - "description": "Fetches the list of subdomain operations processed by a given transaction. The returned array includes subdomain operations that have not yet been accepted as part of any subdomain’s history (checkable via the accepted field). If the given transaction ID does not correspond to a Stacks transaction that introduced new subdomain operations, and empty array will be returned.", - "required": [ - "accepted", - "block_height", - "domain", - "fully_qualified_subdomain", - "missing", - "owner", - "parent_zonefile_hash", - "parent_zonefile_index", - "resolver", - "sequence", - "signature", - "txid", - "zonefile_hash", - "zonefile_offset" - ], - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "properties": { - "accepted": { - "type": "integer", - "minimum": 0, - "maximum": 1 - }, - "block_height": { "type": "integer", "minimum": 0 }, - "domain": { - "type": "string", - "pattern": "^([a-z0-9\\-_.+]{3,37})$|^([a-z0-9\\-_.+]){3,37}$" - }, - "fully_qualified_subdomain": { - "type": "string", - "pattern": "^([a-z0-9\\-_.+]{3,37}).([a-z0-9\\-_.+]{3,37})$" - }, - "missing": { "type": "string" }, - "owner": { - "type": "string", - "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)$" - }, - "parent_zonefile_hash": { - "type": "string", - "pattern": "^[0-9a-fA-F]{40}" - }, - "parent_zonefile_index": { - "type": "integer", - "minimum": 0 - }, - "resolver": { - "type": "string" - }, - "sequence": { - "type": "integer", - "minimum": 0 - }, - "signature": { - "type": "string" - }, - "txid": { - "type": "string", - "pattern": "^[0-9a-fA-F]{64}" - }, - "zonefile_hash": { - "type": "string", - "pattern": "^[0-9a-fA-F]{40}" - }, - "zonefile_offset": { - "type": "integer", - "minimum": 0 - } - } - } -} diff --git a/docs/api/bns/namespace-operations/bns-get-all-namespaces-names-response.example.json b/docs/api/bns/namespace-operations/bns-get-all-namespaces-names-response.example.json deleted file mode 100644 index 3dabcfde0..000000000 --- a/docs/api/bns/namespace-operations/bns-get-all-namespaces-names-response.example.json +++ /dev/null @@ -1 +0,0 @@ -["aldenquimby.id", "aldeoryn.id", "alderete.id", "aldert.id", "aldi.id", "aldighieri.id"] diff --git a/docs/api/bns/namespace-operations/bns-get-all-namespaces-names-response.schema.json b/docs/api/bns/namespace-operations/bns-get-all-namespaces-names-response.schema.json deleted file mode 100644 index 2dbee51c2..000000000 --- a/docs/api/bns/namespace-operations/bns-get-all-namespaces-names-response.schema.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "title": "BnsGetAllNamespacesNamesResponse", - "description": "Fetch a list of names from the namespace.", - "type": "array", - "items": { - "type": "string", - "pattern": "^([a-z0-9-_.+]{3,37})$" - } -} diff --git a/docs/api/bns/namespace-operations/bns-get-all-namespaces-response.example.json b/docs/api/bns/namespace-operations/bns-get-all-namespaces-response.example.json deleted file mode 100644 index 6553e9be4..000000000 --- a/docs/api/bns/namespace-operations/bns-get-all-namespaces-response.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "namespaces": ["id", "helloworld", "podcast", "graphite", "blockstack"] -} diff --git a/docs/api/bns/namespace-operations/bns-get-all-namespaces-response.schema.json b/docs/api/bns/namespace-operations/bns-get-all-namespaces-response.schema.json deleted file mode 100644 index d19887bd2..000000000 --- a/docs/api/bns/namespace-operations/bns-get-all-namespaces-response.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "BnsGetAllNamespacesResponse", - "description": "Fetch a list of all namespaces known to the node.", - "additionalProperties": false, - "required": ["namespaces"], - "type": "object", - "properties": { - "namespaces": { - "type": "array", - "items": { "type": "string" } - } - } -} diff --git a/docs/api/bns/namespace-operations/bns-get-namespace-price-response.example.json b/docs/api/bns/namespace-operations/bns-get-namespace-price-response.example.json deleted file mode 100644 index 9a619617b..000000000 --- a/docs/api/bns/namespace-operations/bns-get-namespace-price-response.example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "units": "STX", - "amount": "4000000000" -} diff --git a/docs/api/bns/namespace-operations/bns-get-namespace-price-response.schema.json b/docs/api/bns/namespace-operations/bns-get-namespace-price-response.schema.json deleted file mode 100644 index e66d04c87..000000000 --- a/docs/api/bns/namespace-operations/bns-get-namespace-price-response.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "title": "BnsGetNamespacePriceResponse", - "description": "Fetch price for namespace.", - "additionalProperties": false, - "required": [ "units", "amount" ], - "type": "object", - "properties": { - "units": { - "type": "string" - }, - "amount": { - "type": "string", - "pattern": "^[0-9]+$" - } - } -} - diff --git a/docs/api/bns/subdomains/subdomains-list.example.json b/docs/api/bns/subdomains/subdomains-list.example.json deleted file mode 100644 index 4dd726573..000000000 --- a/docs/api/bns/subdomains/subdomains-list.example.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - "address_test.id.blockstack", - "previous_subdomain.id.blockstack", - "subdomain.id.blockstack", - "zonefile_test.id.blockstack", - "zone_test.id.blockstack" -] diff --git a/docs/api/bns/subdomains/subdomains-list.schema.json b/docs/api/bns/subdomains/subdomains-list.schema.json deleted file mode 100644 index 9ced1fd88..000000000 --- a/docs/api/bns/subdomains/subdomains-list.schema.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "title": "GetAllSubdomainsInName", - "description": "Fetch a list of subdomains in a name.", - "type": "array", - "items": { - "type": "string", - "pattern": "^([a-z0-9-_.+]{3,37})$" - } -} diff --git a/docs/api/burnchain/get-reward-slot-holders.example.json b/docs/api/burnchain/get-reward-slot-holders.example.json deleted file mode 100644 index e647d6677..000000000 --- a/docs/api/burnchain/get-reward-slot-holders.example.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 2, - "results": [ - { - "canonical": true, - "burn_block_hash": "0x4eaabcd105865e471f697eff5dd5bd85d47ecb5a26a3379d74fae0ae87c40904", - "burn_block_height": 331, - "address": "1C56LYirKa3PFXFsvhSESgDy2acEHVAEt6", - "slot_index": 0 - }, - { - "canonical": true, - "burn_block_hash": "0x4eaabcd105865e471f697eff5dd5bd85d47ecb5a26a3379d74fae0ae87c40904", - "burn_block_height": 331, - "address": "1M3bvWB9CRh5BTumeVxtHDEV6W4S2R9AZw", - "slot_index": 0 - } - ] -} diff --git a/docs/api/burnchain/get-reward-slot-holders.schema.json b/docs/api/burnchain/get-reward-slot-holders.schema.json deleted file mode 100644 index 1bd6c173b..000000000 --- a/docs/api/burnchain/get-reward-slot-holders.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns reward slot holders", - "additionalProperties": false, - "title": "BurnchainRewardSlotHolderListResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30, - "description": "The number of items to return" - }, - "offset": { - "type": "integer", - "description": "The number of items to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "Total number of available items" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/burnchain/reward-slot-holder.schema.json" - } - } - } -} diff --git a/docs/api/burnchain/get-rewards.example.json b/docs/api/burnchain/get-rewards.example.json deleted file mode 100644 index 5e2a6759f..000000000 --- a/docs/api/burnchain/get-rewards.example.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "results": [ - { - "canonical": true, - "burn_block_hash": "0x4eaabcd105865e471f697eff5dd5bd85d47ecb5a26a3379d74fae0ae87c40904", - "burn_block_height": 331, - "burn_amount": "12000", - "reward_recipient": "1C56LYirKa3PFXFsvhSESgDy2acEHVAEt6", - "reward_amount": "5000", - "reward_index": 0 - }, - { - "canonical": true, - "burn_block_hash": "0x4eaabcd105865e471f697eff5dd5bd85d47ecb5a26a3379d74fae0ae87c40904", - "burn_block_height": 336, - "burn_amount": "14000", - "reward_recipient": "1M3bvWB9CRh5BTumeVxtHDEV6W4S2R9AZw", - "reward_amount": "2000", - "reward_index": 0 - } - ] -} diff --git a/docs/api/burnchain/get-rewards.schema.json b/docs/api/burnchain/get-rewards.schema.json deleted file mode 100644 index 8828a4b0d..000000000 --- a/docs/api/burnchain/get-rewards.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET request that returns blocks", - "additionalProperties": false, - "title": "BurnchainRewardListResponse", - "type": "object", - "required": ["results", "limit", "offset"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30, - "description": "The number of burnchain rewards to return" - }, - "offset": { - "type": "integer", - "description": "The number to burnchain rewards to skip (starting at `0`)", - "default": 0 - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/burnchain/reward.schema.json" - } - } - } -} diff --git a/docs/api/contract/post-call-read-only-fn-fail.example.json b/docs/api/contract/post-call-read-only-fn-fail.example.json deleted file mode 100644 index 5680a225c..000000000 --- a/docs/api/contract/post-call-read-only-fn-fail.example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "okay": false, - "cause": "Unchecked(PublicFunctionNotReadOnly(..." -} diff --git a/docs/api/contract/post-call-read-only-fn-success.example.json b/docs/api/contract/post-call-read-only-fn-success.example.json deleted file mode 100644 index cc94dccd1..000000000 --- a/docs/api/contract/post-call-read-only-fn-success.example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "okay": true, - "result": "0x111..." -} diff --git a/docs/api/contract/post-call-read-only-fn.schema.json b/docs/api/contract/post-call-read-only-fn.schema.json deleted file mode 100644 index 5162e1dff..000000000 --- a/docs/api/contract/post-call-read-only-fn.schema.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "description": "GET request to get contract source", - "title": "ReadOnlyFunctionSuccessResponse", - "type": "object", - "additionalProperties": false, - "required": ["okay"], - "properties": { - "okay": { - "type": "boolean" - }, - "result": { - "type": "string" - }, - "cause": { - "type": "string" - } - } -} diff --git a/docs/api/contract/smart-contract-list-response.example.json b/docs/api/contract/smart-contract-list-response.example.json deleted file mode 100644 index 30aff49db..000000000 --- a/docs/api/contract/smart-contract-list-response.example.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "offset": 0, - "limit": 10, - "result": [ - { - "tx_id": "0xb8b822f30a063fda8f9d44a23530a562a1ed93867d5977fbb12b1c284736edbb", - "canonical": true, - "contract_id": "SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.btc-ft-swap", - "block_height": 23131, - "source_code": "(use-trait fungible-token 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.sip-010-trait) (define-constant expiry u100) (define-map swaps uint {sats: uint, btc-receiver: (buff 40), amount: uint, ft-receiver: (optional principal), ft-sender: principal, when: uint, done: uint, ft: principal}) (define-data-var next-id uint u0) (define-private (find-out (entry {scriptPubKey: (buff 128), value: (buff 8)}) (result {pubscriptkey: (buff 40), out: (optional {scriptPubKey: (buff 128), value: uint})})) (if (is-eq (get scriptPubKey entry) (get pubscriptkey result)) (merge result {out: (some {scriptPubKey: (get scriptPubKey entry), value: (get uint32 (unwrap-panic (contract-call? 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.clarity-bitcoin-lib-v1 read-uint32 {txbuff: (get value entry), index: u0})))})}) result)) (define-public (get-out-value (tx { version: (buff 4), ins: (list 8 {outpoint: {hash: (buff 32), index: (buff 4)}, scriptSig: (buff 256), sequence: (buff 4)}), outs: (list 8 {value: (buff 8), scriptPubKey: (buff 128)}), locktime: (buff 4)}) (pubscriptkey (buff 40))) (ok (fold find-out (get outs tx) {pubscriptkey: pubscriptkey, out: none}))) ;; create a swap between btc and fungible token (define-public (create-swap (sats uint) (btc-receiver (buff 40)) (amount uint) (ft-receiver (optional principal)) (ft )) (let ((id (var-get next-id))) (asserts! (map-insert swaps id {sats: sats, btc-receiver: btc-receiver, amount: amount, ft-receiver: ft-receiver, ft-sender: tx-sender, when: block-height, done: u0, ft: (contract-of ft)}) ERR_INVALID_ID) (var-set next-id (+ id u1)) (match (contract-call? ft transfer amount tx-sender (as-contract tx-sender) (some 0x636174616d6172616e2073776170)) success (ok id) error (err (* error u1000))))) (define-public (set-ft-receiver (id uint)) (let ((swap (unwrap! (map-get? swaps id) ERR_INVALID_ID))) (if (is-none (get ft-receiver swap)) (begin (asserts! (map-set swaps id (merge swap {ft-receiver: (some tx-sender)})) ERR_NATIVE_FAILURE) (ok true)) ERR_ALREADY_DONE))) ;; any user can cancle the swap after the expiry period (define-public (cancel (id uint) (ft )) (let ((swap (unwrap! (map-get? swaps id) ERR_INVALID_ID))) (asserts! (is-eq (contract-of ft) (get ft swap)) ERR_INVALID_FUNGIBLE_TOKEN) (asserts! (< (+ (get when swap) expiry) block-height) ERR_TOO_EARLY) (asserts! (is-eq (get done swap) u0) ERR_ALREADY_DONE) (asserts! (map-set swaps id (merge swap {done: u1})) ERR_NATIVE_FAILURE) (as-contract (contract-call? ft transfer (get amount swap) tx-sender (get ft-sender swap) (some 0x72657665727420636174616d6172616e2073776170))))) ;; any user can submit a tx that contains the swap (define-public (submit-swap (id uint) (block { version: (buff 4), parent: (buff 32), merkle-root: (buff 32), timestamp: (buff 4), nbits: (buff 4), nonce: (buff 4), height: uint }) (tx {version: (buff 4), ins: (list 8 {outpoint: {hash: (buff 32), index: (buff 4)}, scriptSig: (buff 256), sequence: (buff 4)}), outs: (list 8 {value: (buff 8), scriptPubKey: (buff 128)}), locktime: (buff 4)}) (proof { tx-index: uint, hashes: (list 12 (buff 32)), tree-depth: uint }) (ft )) (let ((swap (unwrap! (map-get? swaps id) ERR_INVALID_ID)) (tx-buff (contract-call? 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.clarity-bitcoin-lib-v1 concat-tx tx))) (match (contract-call? 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.clarity-bitcoin-lib-v1 was-tx-mined block tx-buff proof) result (begin (asserts! result ERR_VERIFICATION_FAILED) (asserts! (is-eq (get done swap) u0) ERR_ALREADY_DONE) (match (get out (unwrap! (get-out-value tx (get btc-receiver swap)) ERR_NATIVE_FAILURE)) out (if (>= (get value out) (get sats swap)) (begin (asserts! (is-eq (contract-of ft) (get ft swap)) ERR_INVALID_FUNGIBLE_TOKEN) (asserts! (map-set swaps id (merge swap {done: u1})) ERR_NATIVE_FAILURE) (as-contract (contract-call? ft transfer (get amount swap) tx-sender (unwrap! (get ft-receiver swap) ERR_NO_FT_RECEIVER) (some 0x636174616d6172616e2073776170)))) ERR_TX_VALUE_TOO_SMALL) ERR_TX_NOT_FOR_RECEIVER)) error (err (* error u1000))))) (define-constant ERR_VERIFICATION_FAILED (err u1)) (define-constant ERR_FAILED_TO_PARSE_TX (err u2)) (define-constant ERR_INVALID_ID (err u3)) (define-constant ERR_TOO_EARLY (err u4)) (define-constant ERR_TX_VALUE_TOO_SMALL (err u5)) (define-constant ERR_TX_NOT_FOR_RECEIVER (err u6)) (define-constant ERR_ALREADY_DONE (err u7)) (define-constant ERR_INVALID_FUNGIBLE_TOKEN (err u8)) (define-constant ERR_NO_FT_RECEIVER (err u9)) (define-constant ERR_NATIVE_FAILURE (err u99)) ", - "abi": "{\"maps\":[{\"key\":\"uint128\",\"name\":\"swaps\",\"value\":{\"tuple\":[{\"name\":\"amount\",\"type\":\"uint128\"},{\"name\":\"btc-receiver\",\"type\":{\"buffer\":{\"length\":40}}},{\"name\":\"done\",\"type\":\"uint128\"},{\"name\":\"ft\",\"type\":\"principal\"},{\"name\":\"ft-receiver\",\"type\":{\"optional\":\"principal\"}},{\"name\":\"ft-sender\",\"type\":\"principal\"},{\"name\":\"sats\",\"type\":\"uint128\"},{\"name\":\"when\",\"type\":\"uint128\"}]}}],\"functions\":[{\"args\":[{\"name\":\"entry\",\"type\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":{\"buffer\":{\"length\":8}}}]}},{\"name\":\"result\",\"type\":{\"tuple\":[{\"name\":\"out\",\"type\":{\"optional\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":\"uint128\"}]}}},{\"name\":\"pubscriptkey\",\"type\":{\"buffer\":{\"length\":40}}}]}}],\"name\":\"find-out\",\"access\":\"private\",\"outputs\":{\"type\":{\"tuple\":[{\"name\":\"out\",\"type\":{\"optional\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":\"uint128\"}]}}},{\"name\":\"pubscriptkey\",\"type\":{\"buffer\":{\"length\":40}}}]}}},{\"args\":[{\"name\":\"id\",\"type\":\"uint128\"},{\"name\":\"ft\",\"type\":\"trait_reference\"}],\"name\":\"cancel\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":\"bool\",\"error\":\"uint128\"}}}},{\"args\":[{\"name\":\"sats\",\"type\":\"uint128\"},{\"name\":\"btc-receiver\",\"type\":{\"buffer\":{\"length\":40}}},{\"name\":\"amount\",\"type\":\"uint128\"},{\"name\":\"ft-receiver\",\"type\":{\"optional\":\"principal\"}},{\"name\":\"ft\",\"type\":\"trait_reference\"}],\"name\":\"create-swap\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":\"uint128\",\"error\":\"uint128\"}}}},{\"args\":[{\"name\":\"tx\",\"type\":{\"tuple\":[{\"name\":\"ins\",\"type\":{\"list\":{\"type\":{\"tuple\":[{\"name\":\"outpoint\",\"type\":{\"tuple\":[{\"name\":\"hash\",\"type\":{\"buffer\":{\"length\":32}}},{\"name\":\"index\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"scriptSig\",\"type\":{\"buffer\":{\"length\":256}}},{\"name\":\"sequence\",\"type\":{\"buffer\":{\"length\":4}}}]},\"length\":8}}},{\"name\":\"locktime\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"outs\",\"type\":{\"list\":{\"type\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":{\"buffer\":{\"length\":8}}}]},\"length\":8}}},{\"name\":\"version\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"pubscriptkey\",\"type\":{\"buffer\":{\"length\":40}}}],\"name\":\"get-out-value\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":{\"tuple\":[{\"name\":\"out\",\"type\":{\"optional\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":\"uint128\"}]}}},{\"name\":\"pubscriptkey\",\"type\":{\"buffer\":{\"length\":40}}}]},\"error\":\"none\"}}}},{\"args\":[{\"name\":\"id\",\"type\":\"uint128\"}],\"name\":\"set-ft-receiver\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":\"bool\",\"error\":\"uint128\"}}}},{\"args\":[{\"name\":\"id\",\"type\":\"uint128\"},{\"name\":\"block\",\"type\":{\"tuple\":[{\"name\":\"height\",\"type\":\"uint128\"},{\"name\":\"merkle-root\",\"type\":{\"buffer\":{\"length\":32}}},{\"name\":\"nbits\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"nonce\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"parent\",\"type\":{\"buffer\":{\"length\":32}}},{\"name\":\"timestamp\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"version\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"tx\",\"type\":{\"tuple\":[{\"name\":\"ins\",\"type\":{\"list\":{\"type\":{\"tuple\":[{\"name\":\"outpoint\",\"type\":{\"tuple\":[{\"name\":\"hash\",\"type\":{\"buffer\":{\"length\":32}}},{\"name\":\"index\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"scriptSig\",\"type\":{\"buffer\":{\"length\":256}}},{\"name\":\"sequence\",\"type\":{\"buffer\":{\"length\":4}}}]},\"length\":8}}},{\"name\":\"locktime\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"outs\",\"type\":{\"list\":{\"type\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":{\"buffer\":{\"length\":8}}}]},\"length\":8}}},{\"name\":\"version\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"proof\",\"type\":{\"tuple\":[{\"name\":\"hashes\",\"type\":{\"list\":{\"type\":{\"buffer\":{\"length\":32}},\"length\":12}}},{\"name\":\"tree-depth\",\"type\":\"uint128\"},{\"name\":\"tx-index\",\"type\":\"uint128\"}]}},{\"name\":\"ft\",\"type\":\"trait_reference\"}],\"name\":\"submit-swap\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":\"bool\",\"error\":\"uint128\"}}}}],\"variables\":[{\"name\":\"ERR_ALREADY_DONE\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_FAILED_TO_PARSE_TX\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_INVALID_FUNGIBLE_TOKEN\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_INVALID_ID\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_NATIVE_FAILURE\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_NO_FT_RECEIVER\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_TOO_EARLY\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_TX_NOT_FOR_RECEIVER\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_TX_VALUE_TOO_SMALL\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_VERIFICATION_FAILED\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"expiry\",\"type\":\"uint128\",\"access\":\"constant\"},{\"name\":\"next-id\",\"type\":\"uint128\",\"access\":\"variable\"}],\"fungible_tokens\":[],\"non_fungible_tokens\":[]}" - } - ] -} diff --git a/docs/api/contract/smart-contract-list-response.schema.json b/docs/api/contract/smart-contract-list-response.schema.json deleted file mode 100644 index afaff8e57..000000000 --- a/docs/api/contract/smart-contract-list-response.schema.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "description": "GET list of contracts", - "title": "ContractListResponse", - "type": "object", - "required": [ - "results", - "limit", - "offset" - ], - "properties": { - "limit": { - "type": "integer", - "description": "The number of contracts to return" - }, - "offset": { - "type": "integer", - "description": "The number to contracts to skip (starting at `0`)", - "default": 0 - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/contracts/smart-contract.schema.json" - } - } - }, - "additionalProperties": false -} diff --git a/docs/api/core-node/get-account-data.example.json b/docs/api/core-node/get-account-data.example.json deleted file mode 100644 index f4cececc9..000000000 --- a/docs/api/core-node/get-account-data.example.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "balance": "0x0000000000000000000000000007a120", - "locked": "0x0000000000000000000000000007a120", - "unlock_height": 126, - "nonce": 2867, - "balance_proof": "0xabce", - "nonce_proof": "0xabcd" -} diff --git a/docs/api/core-node/get-account-data.schema.json b/docs/api/core-node/get-account-data.schema.json deleted file mode 100644 index e5bdd3aac..000000000 --- a/docs/api/core-node/get-account-data.schema.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "description": "GET request for account data", - "title": "AccountDataResponse", - "type": "object", - "additionalProperties": false, - "required": ["balance", "locked", "unlock_height", "nonce", "balance_proof", "nonce_proof"], - "properties": { - "balance": { - "type": "string" - }, - "locked": { - "type": "string" - }, - "unlock_height": { - "type": "integer" - }, - "nonce": { - "type": "integer" - }, - "balance_proof": { - "type": "string" - }, - "nonce_proof": { - "type": "string" - } - } -} diff --git a/docs/api/core-node/get-contract-data-map-entry.example.json b/docs/api/core-node/get-contract-data-map-entry.example.json deleted file mode 100644 index d0e233416..000000000 --- a/docs/api/core-node/get-contract-data-map-entry.example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "data": "0x0a0c000000010a6d6f6e737465722d69640100000000000000000000000000000001", - "proof": "0x123..." -} diff --git a/docs/api/core-node/get-contract-data-map-entry.schema.json b/docs/api/core-node/get-contract-data-map-entry.schema.json deleted file mode 100644 index a4d9ba8d9..000000000 --- a/docs/api/core-node/get-contract-data-map-entry.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "description": "Response of get data map entry request", - "title": "MapEntryResponse", - "type": "object", - "additionalProperties": false, - "required": ["data"], - "properties": { - "data": { - "type": "string", - "description": "Hex-encoded string of clarity value. It is always an optional tuple." - }, - "proof": { - "type": "string", - "description": "Hex-encoded string of the MARF proof for the data" - } - } -} diff --git a/docs/api/core-node/get-contract-interface.example.json b/docs/api/core-node/get-contract-interface.example.json deleted file mode 100644 index 0e7c12bb7..000000000 --- a/docs/api/core-node/get-contract-interface.example.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "functions": [ - { - "name": "get-value", - "access": "public", - "args": [ - { - "name": "key", - "type": { - "buffer": { - "length": 32 - } - } - } - ], - "outputs": { - "type": { - "response": { - "ok": { - "buffer": { - "length": 32 - } - }, - "error": "int128" - } - } - } - }, - { - "name": "set-value", - "access": "public", - "args": [ - { - "name": "key", - "type": { - "buffer": { - "length": 32 - } - } - }, - { - "name": "value", - "type": { - "buffer": { - "length": 32 - } - } - } - ], - "outputs": { - "type": { - "response": { - "ok": "uint128", - "error": "none" - } - } - } - }, - { - "name": "test-emit-event", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "uint128", - "error": "none" - } - } - } - }, - { - "name": "test-event-types", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "uint128", - "error": "none" - } - } - } - } - ], - "variables": [ - { - "name": "recipient", - "type": "principal", - "access": "constant" - }, - { - "name": "sender", - "type": "principal", - "access": "constant" - } - ], - "maps": [ - { - "name": "store", - "key": [ - { - "name": "key", - "type": { - "buffer": { - "length": 32 - } - } - } - ], - "value": [ - { - "name": "value", - "type": { - "buffer": { - "length": 32 - } - } - } - ] - } - ], - "fungible_tokens": [ - { - "name": "novel-token-19" - } - ], - "non_fungible_tokens": [ - { - "name": "hello-nft", - "type": "uint128" - } - ] -} diff --git a/docs/api/core-node/get-contract-interface.schema.json b/docs/api/core-node/get-contract-interface.schema.json deleted file mode 100644 index 889ea2975..000000000 --- a/docs/api/core-node/get-contract-interface.schema.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "description": "GET request to get contract interface", - "title": "ContractInterfaceResponse", - "type": "object", - "additionalProperties": false, - "required": ["functions", "variables", "maps", "fungible_tokens", "non_fungible_tokens"], - "properties": { - "functions": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of defined methods" - }, - "variables": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of defined variables" - }, - "maps": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of defined data-maps" - }, - "fungible_tokens": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of fungible tokens in the contract" - }, - "non_fungible_tokens": { - "type": "array", - "items": { - "type": "object" - }, - "description": "List of non-fungible tokens in the contract" - } - } -} diff --git a/docs/api/core-node/get-contract-source.example.json b/docs/api/core-node/get-contract-source.example.json deleted file mode 100644 index b770b5005..000000000 --- a/docs/api/core-node/get-contract-source.example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "source": "(define-constant sender 'SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR)\n(define-constant recipient 'SM2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQVX8X0G)\n\n(define-fungible-token novel-token-19)\n(begin (ft-mint? novel-token-19 u12 sender))\n(begin (ft-transfer? novel-token-19 u2 sender recipient))\n\n(define-non-fungible-token hello-nft uint)\n(begin (nft-mint? hello-nft u1 sender))\n(begin (nft-mint? hello-nft u2 sender))\n(begin (nft-transfer? hello-nft u1 sender recipient))\n\n(define-public (test-emit-event)\n (begin\n (print \"Event! Hello world\")\n (ok u1)))\n(begin (test-emit-event))\n\n(define-public (test-event-types)\n (begin\n (unwrap-panic (ft-mint? novel-token-19 u3 recipient))\n (unwrap-panic (nft-mint? hello-nft u2 recipient))\n (unwrap-panic (stx-transfer? u60 tx-sender 'SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR))\n (unwrap-panic (stx-burn? u20 tx-sender))\n (ok u1)))\n\n(define-map store ((key (buff 32))) ((value (buff 32))))\n(define-public (get-value (key (buff 32)))\n (begin\n (match (map-get? store ((key key)))\n entry (ok (get value entry))\n (err 0))))\n(define-public (set-value (key (buff 32)) (value (buff 32)))\n (begin\n (map-set store ((key key)) ((value value)))\n (ok u1)))", - "publish_height": 3196, - "proof": "0000001104060000001ec4e..." -} diff --git a/docs/api/core-node/get-contract-source.schema.json b/docs/api/core-node/get-contract-source.schema.json deleted file mode 100644 index bbbcb28c4..000000000 --- a/docs/api/core-node/get-contract-source.schema.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "description": "GET request to get contract source", - "title": "ContractSourceResponse", - "type": "object", - "additionalProperties": false, - "required": ["source", "publish_height", "proof"], - "properties": { - "source": { - "type": "string" - }, - "publish_height": { - "type": "integer" - }, - "proof": { - "type": "string" - } - } -} diff --git a/docs/api/core-node/get-fee-transfer.example.json b/docs/api/core-node/get-fee-transfer.example.json deleted file mode 100644 index d00491fd7..000000000 --- a/docs/api/core-node/get-fee-transfer.example.json +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/docs/api/core-node/get-fee-transfer.schema.json b/docs/api/core-node/get-fee-transfer.schema.json deleted file mode 100644 index f82e6edc5..000000000 --- a/docs/api/core-node/get-fee-transfer.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "description": "GET fee estimates", - "title": "CoreNodeFeeResponse", - "type": "string", - "additionalProperties": false -} diff --git a/docs/api/core-node/get-info.example.json b/docs/api/core-node/get-info.example.json deleted file mode 100644 index 19bb6d20f..000000000 --- a/docs/api/core-node/get-info.example.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "peer_version": 385875968, - "pox_consensus": "17f76e597bab45646956f38dd39573085d72cbc0", - "burn_block_height": 16, - "stable_pox_consensus": "8e0561978fc5506b68a589c402dad97e862edb59", - "stable_burn_block_height": 15, - "server_version": "blockstack-core 0.0.1 => 23.0.0.0 (, release build, linux [x86_64])", - "network_id": 2147483648, - "parent_network_id": 3669344250, - "stacks_tip_height": 15, - "stacks_tip": "b1807a2d3f7f8c7922f7c1d60d7c34145ade05d789640dc7dc9ec1021e07bb54", - "stacks_tip_consensus_hash": "17f76e597bab45646956f38dd39573085d72cbc0", - "unanchored_tip": "0000000000000000000000000000000000000000000000000000000000000000", - "exit_at_block_height": null -} diff --git a/docs/api/core-node/get-info.schema.json b/docs/api/core-node/get-info.schema.json deleted file mode 100644 index 7f20cd037..000000000 --- a/docs/api/core-node/get-info.schema.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "description": "GET request that core node information", - "title": "CoreNodeInfoResponse", - "type": "object", - "additionalProperties": false, - "required": [ - "peer_version", - "pox_consensus", - "burn_block_height", - "stable_pox_consensus", - "stable_burn_block_height", - "server_version", - "network_id", - "parent_network_id", - "stacks_tip_height", - "stacks_tip", - "stacks_tip_consensus_hash", - "unanchored_tip", - "exit_at_block_height" - ], - "properties": { - "peer_version": { - "type": "integer", - "description": "identifies the version number for the networking communication, this should not change while a node is running, and will only change if there's an upgrade" - }, - "pox_consensus": { - "type": "string", - "description": "is a hash used to identify the burnchain view for a node. it incorporates bitcoin chain information and PoX information. nodes that disagree on this value will appear to each other as forks. this value will change after every block" - }, - "burn_block_height": { - "type": "integer", - "description": "latest bitcoin chain height" - }, - "stable_pox_consensus": { - "type": "string", - "description": "same as burn_consensus, but evaluated at stable_burn_block_height" - }, - "stable_burn_block_height": { - "type": "integer", - "description": "leftover from stacks 1.0, basically always burn_block_height - 1" - }, - "server_version": { - "type": "string", - "description": "is a version descriptor" - }, - "network_id": { - "type": "integer", - "description": "is similar to peer_version and will be used to differentiate between different testnets. this value will be different between mainnet and testnet. once launched, this value will not change" - }, - "parent_network_id": { - "type": "integer", - "description": "same as network_id, but for bitcoin" - }, - "stacks_tip_height": { - "type": "integer", - "description": "the latest Stacks chain height. Stacks forks can occur independent of the Bitcoin chain, that height doesn't increase 1-to-1 with the Bitcoin height" - }, - "stacks_tip": { - "type": "string", - "description": "the best known block hash for the Stack chain (not including any pending microblocks)" - }, - "stacks_tip_consensus_hash": { - "type": "string", - "description": "the burn chain (i.e., bitcoin) consensus hash at the time that stacks_tip was mined" - }, - "unanchored_tip": { - "type": "string", - "description": "the latest microblock hash if any microblocks were processed. if no microblock has been processed for the current block, a 000.., hex array is returned" - }, - "exit_at_block_height": { - "type": "integer", - "description": "the block height at which the testnet network will be reset. not applicable for mainnet" - } - } -} diff --git a/docs/api/core-node/get-pox.example.json b/docs/api/core-node/get-pox.example.json deleted file mode 100644 index ad7f133cc..000000000 --- a/docs/api/core-node/get-pox.example.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "contract_id": "SP000000000000000000002Q6VF78.pox", - "pox_activation_threshold_ustx": 67694186237302, - "first_burnchain_block_height": 666050, - "prepare_phase_block_length": 100, - "reward_phase_block_length": 2000, - "reward_slots": 4000, - "rejection_fraction": 25, - "total_liquid_supply_ustx": 1353883724746042, - "current_cycle": { - "id": 50, - "min_threshold_ustx": 100000000000, - "stacked_ustx": 391056240478955, - "is_pox_active": true - }, - "next_cycle": { - "id": 51, - "min_threshold_ustx": 90000000000, - "min_increment_ustx": 67694186237, - "stacked_ustx": 350473977597161, - "prepare_phase_start_block_height": 773050, - "blocks_until_prepare_phase": 227, - "reward_phase_start_block_height": 773150, - "blocks_until_reward_phase": 327, - "ustx_until_pox_rejection": 338470931186500 - }, - "min_amount_ustx": 90000000000, - "prepare_cycle_length": 100, - "reward_cycle_id": 50, - "reward_cycle_length": 2100, - "rejection_votes_left_required": 338470931186500, - "next_reward_cycle_in": 327 -} diff --git a/docs/api/core-node/get-pox.schema.json b/docs/api/core-node/get-pox.schema.json deleted file mode 100644 index 12476d110..000000000 --- a/docs/api/core-node/get-pox.schema.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "description": "Get Proof of Transfer (PoX) information", - "title": "CoreNodePoxResponse", - "type": "object", - "additionalProperties": false, - "required": [ - "contract_id", - "first_burnchain_block_height", - "min_amount_ustx", - "registration_window_length", - "rejection_fraction", - "reward_cycle_id", - "reward_cycle_length", - "rejection_votes_left_required", - "total_liquid_supply_ustx" - ], - "properties": { - "contract_id": { - "type": "string" - }, - "first_burnchain_block_height": { - "type": "integer" - }, - "min_amount_ustx": { - "type": "integer" - }, - "registration_window_length": { - "type": "integer" - }, - "rejection_fraction": { - "type": "integer" - }, - "reward_cycle_id": { - "type": "integer" - }, - "reward_cycle_length": { - "type": "integer" - }, - "rejection_votes_left_required": { - "type": "integer" - }, - "total_liquid_supply_ustx": { - "type": "integer" - } - } -} diff --git a/docs/api/core-node/post-fee-transaction-response.example.json b/docs/api/core-node/post-fee-transaction-response.example.json deleted file mode 100644 index e82274974..000000000 --- a/docs/api/core-node/post-fee-transaction-response.example.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "cost_scalar_change_by_byte": 0.00476837158203125, - "estimated_cost": { - "read_count": 19, - "read_length": 4814, - "runtime": 7175000, - "write_count": 2, - "write_length": 1020 - }, - "estimated_cost_scalar": 14, - "estimations": [ - { - "fee": 17, - "fee_rate": 1.2410714285714286 - }, - { - "fee": 125, - "fee_rate": 8.958333333333332 - }, - { - "fee": 140, - "fee_rate": 10 - } - ] -} diff --git a/docs/api/core-node/post-fee-transaction-response.schema.json b/docs/api/core-node/post-fee-transaction-response.schema.json deleted file mode 100644 index 73e61dac3..000000000 --- a/docs/api/core-node/post-fee-transaction-response.schema.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "description": "POST response for estimated fee", - "title": "TransactionFeeEstimateResponse", - "type": "object", - "additionalProperties": false, - "required": [ - "estimated_cost", - "estimated_cost_scalar" - ], - "properties": { - "estimated_cost_scalar": { - "type": "integer" - }, - "cost_scalar_change_by_byte": { - "type": "number" - }, - "estimated_cost": { - "type": "object", - "additionalProperties": false, - "required": [ - "read_count", - "write_count", - "read_length", - "write_length", - "runtime" - ], - "properties": { - "read_count": { - "type": "integer" - }, - "read_length": { - "type": "integer" - }, - "runtime": { - "type": "integer" - }, - "write_count": { - "type": "integer" - }, - "write_length": { - "type": "integer" - } - } - }, - "estimations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "fee_rate": { - "type": "number" - }, - "fee": { - "type": "number" - } - } - } - } - } -} diff --git a/docs/api/core-node/post-fee-transaction.example.json b/docs/api/core-node/post-fee-transaction.example.json deleted file mode 100644 index daa4dfd48..000000000 --- a/docs/api/core-node/post-fee-transaction.example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "estimated_len": 350, - "transaction_payload": "021af942874ce525e87f21bbe8c121b12fac831d02f4086765742d696e666f0b7570646174652d696e666f00000000" -} diff --git a/docs/api/core-node/post-fee-transaction.schema.json b/docs/api/core-node/post-fee-transaction.schema.json deleted file mode 100644 index c617bf00c..000000000 --- a/docs/api/core-node/post-fee-transaction.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "description": "POST request for estimated fee", - "title": "TransactionFeeEstimateRequest", - "type": "object", - "additionalProperties": false, - "required": [ - "transaction_payload" - ], - "properties": { - "transaction_payload": { - "type": "string" - }, - "estimated_len": { - "type": "integer" - } - } -} diff --git a/docs/api/errors/block-not-found.example.json b/docs/api/errors/block-not-found.example.json deleted file mode 100644 index c05049f94..000000000 --- a/docs/api/errors/block-not-found.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "cannot find block by hash 0xabc123" -} diff --git a/docs/api/errors/microblock-not-found.example.json b/docs/api/errors/microblock-not-found.example.json deleted file mode 100644 index c9a014dc0..000000000 --- a/docs/api/errors/microblock-not-found.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "cannot find microblock by hash 0xabc123" -} diff --git a/docs/api/errors/search-not-found.example.json b/docs/api/errors/search-not-found.example.json deleted file mode 100644 index 98e8a5f33..000000000 --- a/docs/api/errors/search-not-found.example.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "found": false, - "result": { - "entity_type": "unknown_hash" - }, - "error": "No block or transaction found with hash \"0xabc123\"" -} diff --git a/docs/api/errors/transaction-not-found.example.json b/docs/api/errors/transaction-not-found.example.json deleted file mode 100644 index 1d0c3bbef..000000000 --- a/docs/api/errors/transaction-not-found.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "error": "No matching transaction found" -} diff --git a/docs/api/faucet/run-faucet.example.json b/docs/api/faucet/run-faucet.example.json deleted file mode 100644 index 57080630e..000000000 --- a/docs/api/faucet/run-faucet.example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "success": true, - "txId": "0xf2f0402f9f4c4d43b382690c4f7b97e24d5ff5dd5c619e3615daa64dca7ef4bc", - "txRaw": "80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000003200000000000000b400008537046ff1008368baaa3ff2235122c556b89dad4f9df0639b924cf32a44b866497e49846b24191e711b21faaae96ca0542e4a140168484740b94211cececb3303020000000000051ab52c45b1a7977204f17ac0b6f48306aea2dbb8e9000000000007a12046617563657400000000000000000000000000000000000000000000000000000000" -} diff --git a/docs/api/faucet/run-faucet.schema.json b/docs/api/faucet/run-faucet.schema.json deleted file mode 100644 index 0c9ec8042..000000000 --- a/docs/api/faucet/run-faucet.schema.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "description": "POST request that initiates a transfer of tokens to a specified testnet address", - "title": "RunFaucetResponse", - "type": "object", - "additionalProperties": false, - "required": ["success"], - "properties": { - "success": { - "type": "boolean", - "description": "Indicates if the faucet call was successful" - }, - "txId": { - "type": "string", - "description": "The transaction ID for the faucet call" - }, - "txRaw": { - "type": "string", - "description": "Raw transaction in hex string representation" - } - } -} diff --git a/docs/api/info/get-fee-rate-request.example.json b/docs/api/info/get-fee-rate-request.example.json deleted file mode 100644 index 1368c4f6d..000000000 --- a/docs/api/info/get-fee-rate-request.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "transaction": "0x5e9f3933e358df6a73fec0d47ce3e1062c20812c129f5294e6f37a8d27c051d9" -} diff --git a/docs/api/info/get-fee-rate-request.schema.json b/docs/api/info/get-fee-rate-request.schema.json deleted file mode 100644 index 3169fff99..000000000 --- a/docs/api/info/get-fee-rate-request.schema.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "object", - "title": "FeeRateRequest", - "description": "Request to fetch fee for a transaction", - "additionalProperties": false, - "required": [ - "transaction" - ], - "properties": { - "transaction": { - "type": "string", - "description": "A serialized transaction" - } - } -} diff --git a/docs/api/info/get-fee-rate-response.example.json b/docs/api/info/get-fee-rate-response.example.json deleted file mode 100644 index c90b7a26f..000000000 --- a/docs/api/info/get-fee-rate-response.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "fee_rate": 360 -} diff --git a/docs/api/info/get-fee-rate-response.schema.json b/docs/api/info/get-fee-rate-response.schema.json deleted file mode 100644 index 32205a374..000000000 --- a/docs/api/info/get-fee-rate-response.schema.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "FeeRate", - "description": "Get fee rate information.", - "type": "object", - "additionalProperties": false, - "required": [ - "fee_rate" - ], - "properties": { - "fee_rate": { - "type": "integer" - } - } -} diff --git a/docs/api/info/get-network-block-time-by-network.example.json b/docs/api/info/get-network-block-time-by-network.example.json deleted file mode 100644 index d4a0b00c4..000000000 --- a/docs/api/info/get-network-block-time-by-network.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "target_block_time": 600 -} diff --git a/docs/api/info/get-network-block-time-by-network.schema.json b/docs/api/info/get-network-block-time-by-network.schema.json deleted file mode 100644 index bfc7672ba..000000000 --- a/docs/api/info/get-network-block-time-by-network.schema.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "description": "GET request that target block time for a given network", - "title": "NetworkBlockTimeResponse", - "$ref": "../../entities/info/block-time.schema.json" -} diff --git a/docs/api/info/get-network-block-times.example.json b/docs/api/info/get-network-block-times.example.json deleted file mode 100644 index 924f1f8c6..000000000 --- a/docs/api/info/get-network-block-times.example.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "testnet": { - "target_block_time": 120 - }, - "mainnet": { - "target_block_time": 600 - } -} diff --git a/docs/api/info/get-network-block-times.schema.json b/docs/api/info/get-network-block-times.schema.json deleted file mode 100644 index 6dde9af77..000000000 --- a/docs/api/info/get-network-block-times.schema.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "description": "GET request that returns network target block times", - "title": "NetworkBlockTimesResponse", - "type": "object", - "additionalProperties": false, - "required": ["mainnet", "testnet"], - "properties": { - "mainnet": { - "$ref": "../../entities/info/block-time.schema.json" - }, - "testnet": { - "$ref": "../../entities/info/block-time.schema.json" - } - } -} diff --git a/docs/api/info/get-status.example.json b/docs/api/info/get-status.example.json deleted file mode 100644 index 34982e554..000000000 --- a/docs/api/info/get-status.example.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "server_version": "stacks-blockchain-api v1.0.7 (master:77b25878)", - "status": "ready", - "chain_tip": { - "block_height": 48902, - "block_hash": "0xa5a2923c405f8356925213bb8c479beb06d3b68ca66dd2b7397b54f8c08c5eac", - "index_block_hash": "0xf46401bf3cb6a6b6181536b7de414a1fd9e004a6ece99a05de72a781b17f9819", - "microblock_hash": "0xec89a572d3583b959e490bc45e0f521b775ed51d7ed13087b6df8eb82cbe75d3", - "microblock_sequence": 0 - } -} diff --git a/docs/api/info/get-status.schema.json b/docs/api/info/get-status.schema.json deleted file mode 100644 index 24dec15e1..000000000 --- a/docs/api/info/get-status.schema.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "description": "GET blockchain API status", - "title": "ServerStatusResponse", - "type": "object", - "additionalProperties": false, - "required": [ - "status" - ], - "properties": { - "server_version": { - "type": "string", - "description": "the server version that is currently running" - }, - "status": { - "type": "string", - "description": "the current server status" - }, - "pox_v1_unlock_height": { - "type": "integer", - "nullable": true - }, - "pox_v2_unlock_height": { - "type": "integer", - "nullable": true - }, - "pox_v3_unlock_height": { - "type": "integer", - "nullable": true - }, - "chain_tip": { - "$ref": "../../entities/info/chain-tip.schema.json" - } - } -} diff --git a/docs/api/info/get-stx-supply-circulating-plain.schema.json b/docs/api/info/get-stx-supply-circulating-plain.schema.json deleted file mode 100644 index 054547ba1..000000000 --- a/docs/api/info/get-stx-supply-circulating-plain.schema.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "description": "GET request that returns network target block times", - "title": "GetStxCirculatingSupplyPlainResponse", - "type": "string" -} diff --git a/docs/api/info/get-stx-supply-legacy-format.example.json b/docs/api/info/get-stx-supply-legacy-format.example.json deleted file mode 100644 index a23ebf121..000000000 --- a/docs/api/info/get-stx-supply-legacy-format.example.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "unlockedPercent": "71.99", - "totalStacks": "1352464600.000000", - "totalStacksFormatted": "1,352,464,600.000000", - "unlockedSupply": "973705260.219817", - "unlockedSupplyFormatted": "973,705,260.219817", - "blockHeight": "665746" -} diff --git a/docs/api/info/get-stx-supply-legacy-format.schema.json b/docs/api/info/get-stx-supply-legacy-format.schema.json deleted file mode 100644 index 3e4868008..000000000 --- a/docs/api/info/get-stx-supply-legacy-format.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "description": "GET request that returns network target block times", - "title": "GetStxSupplyLegacyFormatResponse", - "type": "object", - "additionalProperties": false, - "required": ["unlockedPercent", "totalStacks", "totalStacksFormatted", "unlockedSupply", "unlockedSupplyFormatted", "blockHeight"], - "properties": { - "unlockedPercent": { - "type": "string", - "description": "String quoted decimal number of the percentage of STX that have unlocked" - }, - "totalStacks": { - "type": "string", - "description": "String quoted decimal number of the total possible number of STX" - }, - "totalStacksFormatted": { - "type": "string", - "description": "Same as `totalStacks` but formatted with comma thousands separators" - }, - "unlockedSupply": { - "type": "string", - "description": "String quoted decimal number of the STX that have been mined or unlocked" - }, - "unlockedSupplyFormatted": { - "type": "string", - "description": "Same as `unlockedSupply` but formatted with comma thousands separators" - }, - "blockHeight": { - "type": "string", - "description": "The block height at which this information was queried" - } - } -} diff --git a/docs/api/info/get-stx-supply-total-plain.schema.json b/docs/api/info/get-stx-supply-total-plain.schema.json deleted file mode 100644 index 74cd56d77..000000000 --- a/docs/api/info/get-stx-supply-total-plain.schema.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "description": "GET request that returns network target block times", - "title": "GetStxTotalSupplyPlainResponse", - "type": "string" -} diff --git a/docs/api/info/get-stx-supply.example.json b/docs/api/info/get-stx-supply.example.json deleted file mode 100644 index df394e5bf..000000000 --- a/docs/api/info/get-stx-supply.example.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "unlocked_percent": "71.99", - "total_stx": "1352464600.000000", - "unlocked_stx": "973705260.219817", - "block_height": 3210 -} diff --git a/docs/api/info/get-stx-supply.schema.json b/docs/api/info/get-stx-supply.schema.json deleted file mode 100644 index 5ec520cd4..000000000 --- a/docs/api/info/get-stx-supply.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET request that returns network target block times", - "title": "GetStxSupplyResponse", - "type": "object", - "additionalProperties": false, - "required": ["unlocked_percent", "total_stx", "unlocked_stx", "block_height"], - "properties": { - "unlocked_percent": { - "type": "string", - "description": "String quoted decimal number of the percentage of STX that have unlocked" - }, - "total_stx": { - "type": "string", - "description": "String quoted decimal number of the total possible number of STX" - }, - "unlocked_stx": { - "type": "string", - "description": "String quoted decimal number of the STX that have been mined or unlocked" - }, - "block_height": { - "type": "integer", - "description": "The block height at which this information was queried" - } - } -} diff --git a/docs/api/mempool/get-fee-priorities.example.json b/docs/api/mempool/get-fee-priorities.example.json deleted file mode 100644 index 0dd1ac80c..000000000 --- a/docs/api/mempool/get-fee-priorities.example.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "all": { - "no_priority": 3000, - "low_priority": 3000, - "medium_priority": 6000, - "high_priority": 401199 - }, - "token_transfer": { - "no_priority": 3000, - "low_priority": 3000, - "medium_priority": 6000, - "high_priority": 401199 - }, - "smart_contract": { - "no_priority": 837500, - "low_priority": 925000, - "medium_priority": 1012500, - "high_priority": 1082500 - }, - "contract_call": { - "no_priority": 3000, - "low_priority": 10368, - "medium_priority": 100000, - "high_priority": 1000000 - } -} diff --git a/docs/api/mempool/get-fee-priorities.schema.json b/docs/api/mempool/get-fee-priorities.schema.json deleted file mode 100644 index 3a2c80452..000000000 --- a/docs/api/mempool/get-fee-priorities.schema.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "description": "GET request that returns fee priorities from mempool transactions", - "title": "MempoolFeePriorities", - "type": "object", - "additionalProperties": false, - "required": [ - "all" - ], - "properties": { - "all": { - "type": "object", - "additionalProperties": false, - "required": [ - "no_priority", - "low_priority", - "medium_priority", - "high_priority" - ], - "properties": { - "no_priority": { - "type": "integer" - }, - "low_priority": { - "type": "integer" - }, - "medium_priority": { - "type": "integer" - }, - "high_priority": { - "type": "integer" - } - } - }, - "token_transfer": { - "type": "object", - "additionalProperties": false, - "required": [ - "no_priority", - "low_priority", - "medium_priority", - "high_priority" - ], - "properties": { - "no_priority": { - "type": "integer" - }, - "low_priority": { - "type": "integer" - }, - "medium_priority": { - "type": "integer" - }, - "high_priority": { - "type": "integer" - } - } - }, - "smart_contract": { - "type": "object", - "additionalProperties": false, - "required": [ - "no_priority", - "low_priority", - "medium_priority", - "high_priority" - ], - "properties": { - "no_priority": { - "type": "integer" - }, - "low_priority": { - "type": "integer" - }, - "medium_priority": { - "type": "integer" - }, - "high_priority": { - "type": "integer" - } - } - }, - "contract_call": { - "type": "object", - "additionalProperties": false, - "required": [ - "no_priority", - "low_priority", - "medium_priority", - "high_priority" - ], - "properties": { - "no_priority": { - "type": "integer" - }, - "low_priority": { - "type": "integer" - }, - "medium_priority": { - "type": "integer" - }, - "high_priority": { - "type": "integer" - } - } - } - } -} diff --git a/docs/api/microblocks/get-microblocks.schema.json b/docs/api/microblocks/get-microblocks.schema.json deleted file mode 100644 index 1824f75cb..000000000 --- a/docs/api/microblocks/get-microblocks.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns microblocks", - "additionalProperties": false, - "title": "MicroblockListResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 30, - "description": "The number of microblocks to return" - }, - "offset": { - "type": "integer", - "description": "The number to microblocks to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "The number of microblocks available" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/microblocks/microblock.schema.json" - } - } - } -} diff --git a/docs/api/microblocks/get-unanchored-txs.schema.json b/docs/api/microblocks/get-unanchored-txs.schema.json deleted file mode 100644 index 21b4285e6..000000000 --- a/docs/api/microblocks/get-unanchored-txs.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "description": "GET request that returns unanchored transactions", - "additionalProperties": false, - "title": "UnanchoredTransactionListResponse", - "type": "object", - "required": ["results", "total"], - "properties": { - "total": { - "type": "integer", - "description": "The number of unanchored transactions available" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/transactions/transaction.schema.json" - } - } - } -} diff --git a/docs/api/search/search-address.schema.json b/docs/api/search/search-address.schema.json deleted file mode 100644 index d4ebd8245..000000000 --- a/docs/api/search/search-address.schema.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "type": "object", - "title": "AddressSearchResult", - "description": "Address search result", - "required": ["found", "result"], - "additionalProperties": false, - "properties": { - "found": { - "type": "boolean", - "description": "Indicates if the requested object was found or not", - "default": true - }, - "result": { - "type": "object", - "description": "This object carries the search result", - "required": ["entity_id", "entity_type"], - "additionalProperties": false, - "properties": { - "entity_id": { - "type": "string", - "description": "The id used to search this query." - }, - "entity_type": { - "type": "string", - "enum": ["standard_address"] - }, - "metadata": { - "type": "object", - "anyOf": [ - { - "$ref": "../address/get-address-stx-balance.schema.json" - } - ] - } - } - } - } -} diff --git a/docs/api/search/search-block.schema.json b/docs/api/search/search-block.schema.json deleted file mode 100644 index cc4f99b2d..000000000 --- a/docs/api/search/search-block.schema.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "type": "object", - "title": "BlockSearchResult", - "description": "Block search result", - "required": ["found", "result"], - "additionalProperties": false, - "properties": { - "found": { - "type": "boolean", - "description": "Indicates if the requested object was found or not", - "default": true - }, - "result": { - "type": "object", - "description": "This object carries the search result", - "required": ["entity_id", "entity_type", "block_data"], - "additionalProperties": false, - "properties": { - "entity_id": { - "type": "string", - "description": "The id used to search this query." - }, - "entity_type": { - "type": "string", - "enum": ["block_hash"] - }, - "block_data": { - "type": "object", - "description": "Returns basic search result information about the requested id", - "required": ["canonical", "hash", "parent_block_hash", "burn_block_time", "height"], - "additionalProperties": false, - "properties": { - "canonical": { - "type": "boolean", - "description": "If the block lies within the canonical chain" - }, - "hash": { - "type": "string", - "description": "Refers to the hash of the block" - }, - "parent_block_hash": { - "type": "string" - }, - "burn_block_time": { - "type": "integer" - }, - "height": { - "type": "integer" - } - } - }, - "metadata": { - "$ref": "../../entities/blocks/block.schema.json" - } - } - } - } -} diff --git a/docs/api/search/search-contract.example.json b/docs/api/search/search-contract.example.json deleted file mode 100644 index 9beaf9657..000000000 --- a/docs/api/search/search-contract.example.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "found": true, - "result": { - "entity_id": "ST2P7B9G6Y55QWZJ9B93DVSEG5S6Z4PFJHB3XRKHW.hello_world", - "entity_type": "contract_address", - "tx_data": { - "canonical": true, - "block_hash": "0xb076fd3983e63bbf28ae615daa31c5b6084d23ceeb920c54f1ea666244415457", - "burn_block_time": 1595229199, - "block_height": 648, - "tx_type": "smart_contract" - } - } -} diff --git a/docs/api/search/search-contract.schema.json b/docs/api/search/search-contract.schema.json deleted file mode 100644 index e4844614e..000000000 --- a/docs/api/search/search-contract.schema.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "type": "object", - "title": "ContractSearchResult", - "description": "Contract search result", - "required": ["found", "result"], - "additionalProperties": false, - "properties": { - "found": { - "type": "boolean", - "description": "Indicates if the requested object was found or not", - "default": true - }, - "result": { - "type": "object", - "description": "This object carries the search result", - "required": ["entity_id", "entity_type"], - "additionalProperties": false, - "properties": { - "entity_id": { - "type": "string", - "description": "The id used to search this query." - }, - "entity_type": { - "type": "string", - "enum": ["contract_address"] - }, - "tx_data": { - "type": "object", - "description": "Returns basic search result information about the requested id", - "additionalProperties": false, - "properties": { - "canonical": { - "type": "boolean", - "description": "If the transaction lies within the canonical chain" - }, - "block_hash": { - "type": "string", - "description": "Refers to the hash of the block for searched transaction" - }, - "burn_block_time": { - "type": "integer" - }, - "block_height": { - "type": "integer" - }, - "tx_type": { - "type": "string" - }, - "tx_id": { - "type": "string", - "description": "Corresponding tx_id for smart_contract" - } - } - }, - "metadata": { - "type": "object", - "anyOf": [ - { - "$ref": "../../entities/mempool-transactions/transaction.schema.json" - }, - { - "$ref": "../../entities/transactions/transaction.schema.json" - } - ] - } - } - } - } -} diff --git a/docs/api/search/search-error.schema.json b/docs/api/search/search-error.schema.json deleted file mode 100644 index 33b480a32..000000000 --- a/docs/api/search/search-error.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "object", - "title": "SearchErrorResult", - "description": "Error search result", - "required": ["found", "result", "error"], - "additionalProperties": false, - "properties": { - "found": { - "type": "boolean", - "description": "Indicates if the requested object was found or not", - "default": false - }, - "result": { - "type": "object", - "required": ["entity_type"], - "additionalProperties": false, - "properties": { - "entity_type": { - "type": "string", - "description": "Shows the currenty category of entity it is searched in.", - "enum": ["standard_address", "unknown_hash", "contract_address", "invalid_term"] - } - } - }, - "error": { - "type": "string" - } - } -} diff --git a/docs/api/search/search-mempool.schema.json b/docs/api/search/search-mempool.schema.json deleted file mode 100644 index 96f6ede30..000000000 --- a/docs/api/search/search-mempool.schema.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "type": "object", - "title": "MempoolTxSearchResult", - "description": "Contract search result", - "required": ["found", "result"], - "additionalProperties": false, - "properties": { - "found": { - "type": "boolean", - "description": "Indicates if the requested object was found or not", - "default": true - }, - "result": { - "type": "object", - "additionalProperties": false, - "description": "This object carries the search result", - "required": ["entity_id", "entity_type", "tx_data"], - "properties": { - "entity_id": { - "type": "string", - "description": "The id used to search this query." - }, - "entity_type": { - "type": "string", - "enum": ["mempool_tx_id"] - }, - "tx_data": { - "type": "object", - "additionalProperties": false, - "description": "Returns basic search result information about the requested id", - "required": ["tx_type"], - "properties": { - "tx_type": { - "type": "string" - } - } - }, - "metadata": { - "$ref": "../../entities/mempool-transactions/transaction.schema.json" - } - } - } - } -} diff --git a/docs/api/search/search-success.schema.json b/docs/api/search/search-success.schema.json deleted file mode 100644 index 2b867ba1f..000000000 --- a/docs/api/search/search-success.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "object", - "title": "SearchSuccessResult", - "description": "Search success result", - "additionalProperties": false, - "anyOf": [ - { - "$ref": "./search-address.schema.json" - }, - { - "$ref": "./search-block.schema.json" - }, - { - "$ref": "./search-contract.schema.json" - }, - { - "$ref": "./search-mempool.schema.json" - }, - { - "$ref": "./search-tx-id.schema.json" - } - ] -} diff --git a/docs/api/search/search-tx-id.example.json b/docs/api/search/search-tx-id.example.json deleted file mode 100644 index 90ea15e67..000000000 --- a/docs/api/search/search-tx-id.example.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "found": true, - "result": { - "entity_id": "0x55f41c149506dc148add4c23a1ec160ce8cd89a4f598c2a9620bb0010dbc2d96", - "entity_type": "tx_id", - "tx_data": { - "canonical": true, - "block_hash": "0xe6596337b8012a1009272070963e1b1a13f1f980011099be40014bb725f06390", - "burn_block_time": 1629895386, - "block_height": 1, - "tx_type": "coinbase" - } - } -} diff --git a/docs/api/search/search-tx-id.schema.json b/docs/api/search/search-tx-id.schema.json deleted file mode 100644 index 9aca47e45..000000000 --- a/docs/api/search/search-tx-id.schema.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "type": "object", - "title": "TxSearchResult", - "description": "Transaction search result", - "additionalProperties": false, - "required": ["found", "result"], - "properties": { - "found": { - "type": "boolean", - "description": "Indicates if the requested object was found or not", - "default": true - }, - "result": { - "type": "object", - "description": "This object carries the search result", - "required": ["entity_id", "entity_type", "tx_data"], - "additionalProperties": false, - "properties": { - "entity_id": { - "type": "string", - "description": "The id used to search this query." - }, - "entity_type": { - "type": "string", - "enum": ["tx_id"] - }, - "tx_data": { - "type": "object", - "description": "Returns basic search result information about the requested id", - "required": ["canonical", "block_hash", "burn_block_time", "block_height", "tx_type"], - "additionalProperties": false, - "properties": { - "canonical": { - "type": "boolean", - "description": "If the transaction lies within the canonical chain" - }, - "block_hash": { - "type": "string", - "description": "Refers to the hash of the block for searched transaction" - }, - "burn_block_time": { - "type": "integer" - }, - "block_height": { - "type": "integer" - }, - "tx_type": { - "type": "string" - } - } - }, - "metadata": { - "$ref": "../../entities/transactions/transaction.schema.json" - } - } - } - } -} diff --git a/docs/api/search/search.schema.json b/docs/api/search/search.schema.json deleted file mode 100644 index 1c4cc8c92..000000000 --- a/docs/api/search/search.schema.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "object", - "title": "SearchResult", - "description": "complete search result for terms", - "additionalProperties": false, - "anyOf": [ - { - "$ref": "./search-error.schema.json" - }, - { - "$ref": "./search-success.schema.json" - } - ] -} diff --git a/docs/api/smart-contracts/get-smart-contracts-status.example.json b/docs/api/smart-contracts/get-smart-contracts-status.example.json deleted file mode 100644 index 15f66ee27..000000000 --- a/docs/api/smart-contracts/get-smart-contracts-status.example.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.swap-helper-bridged-v1-1": { - "found": true, - "result": { - "contract_id": "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.swap-helper-bridged-v1-1", - "status": "success", - "tx_id": "0x8542d28e427256ea3c29dcd8793222891999ceff4ef1bb062e2f21cb6def6884", - "block_height": 111021 - } - }, - "SP1JTCR202ECC6333N7ZXD7MK7E3ZTEEE1MJ73C60.name-registrar": { - "found": true, - "result": { - "contract_id": "SP1JTCR202ECC6333N7ZXD7MK7E3ZTEEE1MJ73C60.name-registrar", - "status": "success", - "tx_id": "0x6e1114cce8c6f2e9c8130f9acd75d67bb667ae584f882acdd2db6dd74e6cbe5e", - "block_height": 113010 - } - }, - "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.stacking-dao-core-v1": { - "found": true, - "result": { - "contract_id": "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.stacking-dao-core-v1", - "status": "pending", - "tx_id": "0x10bdcf10ffee72994f493ac36760f4e95a76c8471370182fd4705c2153dc173d" - } - }, - "SP4SZE494VC2YC5JYG7AYFQ44F5Q4PYV7DVMDPBG.stacking-dao-core": { - "found": false - } -} diff --git a/docs/api/smart-contracts/get-smart-contracts-status.schema.json b/docs/api/smart-contracts/get-smart-contracts-status.schema.json deleted file mode 100644 index 2385c6afa..000000000 --- a/docs/api/smart-contracts/get-smart-contracts-status.schema.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "description": "GET request that returns the deployment status of multiple smart contracts", - "title": "SmartContractsStatusResponse", - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "$ref": "./smart-contract-found.schema.json" - }, - { - "$ref": "./smart-contract-not-found.schema.json" - } - ] - } -} diff --git a/docs/api/smart-contracts/smart-contract-found.schema.json b/docs/api/smart-contracts/smart-contract-found.schema.json deleted file mode 100644 index 6d781711d..000000000 --- a/docs/api/smart-contracts/smart-contract-found.schema.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "object", - "title": "SmartContractFound", - "additionalProperties": false, - "required": ["found", "result"], - "properties": { - "found": { - "type": "boolean", - "enum": [true] - }, - "result": { - "$ref": "../../entities/smart-contracts/smart-contract-status.schema.json" - } - } -} diff --git a/docs/api/smart-contracts/smart-contract-not-found.schema.json b/docs/api/smart-contracts/smart-contract-not-found.schema.json deleted file mode 100644 index 4a4d63514..000000000 --- a/docs/api/smart-contracts/smart-contract-not-found.schema.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "object", - "title": "SmartContractNotFound", - "additionalProperties": false, - "properties": { - "found": { - "type": "boolean", - "enum": [false] - } - }, - "required": ["found"] -} diff --git a/docs/api/stacking/get-pool-delegations.example.json b/docs/api/stacking/get-pool-delegations.example.json deleted file mode 100644 index 1cfc143ef..000000000 --- a/docs/api/stacking/get-pool-delegations.example.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "limit": 200, - "offset": 0, - "total": 2, - "results": [ - { - "stacker": "SPDGWQ60E1QXTC6E4VHKK0NG34EAX554WDFFFHMF", - "pox_addr": "bc1qxhmdufsvnuaaaer4ynz88fspdsxq2h9e9cetdj", - "amount_ustx": "2062697998", - "burn_block_unlock_height": 781984, - "block_height": 65917, - "tx_id": "0x3c81cd26ed172a7e552ed245b8b290abefa4f82dfc610a0091ac91c2eed7f9e6" - }, - { - "stacker": "SP7RNXF7YBSS43TECXTHF7W1MAB221WWW8RKPGSN", - "pox_addr": "1Di1YoMov6Ua3gPedfQz7TkP6iTLqbPUzi", - "amount_ustx": "4815793194", - "block_height": 65910, - "tx_id": "0x1692cd26ed172a7e552ed245b8b290abefa4f82dfc610a0091ac91c2eed7f9e6" - } - ] -} diff --git a/docs/api/stacking/get-pool-delegations.schema.json b/docs/api/stacking/get-pool-delegations.schema.json deleted file mode 100644 index e5845a82a..000000000 --- a/docs/api/stacking/get-pool-delegations.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns stacking pool member details for a given pool (delegator) principal", - "additionalProperties": false, - "title": "PoolDelegationsResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of Stackers to return" - }, - "offset": { - "type": "integer", - "description": "The number to Stackers to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "The total number of Stackers" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/stacking/pool-delegation.schema.json" - } - } - } -} diff --git a/docs/api/stacking/get-pox-cycle-signer-stackers.example.json b/docs/api/stacking/get-pox-cycle-signer-stackers.example.json deleted file mode 100644 index 77840afe9..000000000 --- a/docs/api/stacking/get-pox-cycle-signer-stackers.example.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 1, - "results": [ - { - "pox_address": "15Z2sAvjgVDpcBh4vx9g2XKU8FVHYcXNaj", - "stacked_amount": "686251350000000000", - "stacker_address": "STRYYQQ9M8KAF4NS7WNZQYY59X93XEKR31JP64CP", - "stacker_type": "solo" - } - ] -} diff --git a/docs/api/stacking/get-pox-cycle-signer-stackers.schema.json b/docs/api/stacking/get-pox-cycle-signer-stackers.schema.json deleted file mode 100644 index 0f16dfede..000000000 --- a/docs/api/stacking/get-pox-cycle-signer-stackers.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns stackers for a signer in a PoX cycle", - "additionalProperties": false, - "title": "PoxCycleSignerStackersListResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of stackers to return" - }, - "offset": { - "type": "integer", - "description": "The number to stackers to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "The total number of stackers" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/stacking/stacker.schema.json" - } - } - } -} diff --git a/docs/api/stacking/get-pox-cycle-signers.example.json b/docs/api/stacking/get-pox-cycle-signers.example.json deleted file mode 100644 index 5e10d7603..000000000 --- a/docs/api/stacking/get-pox-cycle-signers.example.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 3, - "results": [ - { - "signing_key": "0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d", - "signer_address": "STRYYQQ9M8KAF4NS7WNZQYY59X93XEKR31JP64CP", - "stacked_amount": "686251350000000000", - "stacked_amount_percent": 50, - "weight": 5, - "weight_percent": 55.55555555555556, - "solo_stacker_count": 16, - "pooled_stacker_count": 3615 - }, - { - "signing_key": "0x029874497a7952483aa23890e9d0898696f33864d3df90939930a1f45421fe3b09", - "signer_address": "STF9B75ADQAVXQHNEQ6KGHXTG7JP305J2GRWF3A2", - "stacked_amount": "457500900000000000", - "stacked_amount_percent": 33.333333333333336, - "weight": 3, - "weight_percent": 33.33333333333333, - "solo_stacker_count": 0, - "pooled_stacker_count": 1456 - }, - { - "signing_key": "0x02dcde79b38787b72d8e5e0af81cffa802f0a3c8452d6b46e08859165f49a72736", - "signer_address": "ST18MDW2PDTBSCR1ACXYRJP2JX70FWNM6YY2VX4SS", - "stacked_amount": "228750450000000000", - "stacked_amount_percent": 16.666666666666668, - "weight": 1, - "weight_percent": 11.11111111111111, - "solo_stacker_count": 637, - "pooled_stacker_count": 0 - } - ] -} diff --git a/docs/api/stacking/get-pox-cycle-signers.schema.json b/docs/api/stacking/get-pox-cycle-signers.schema.json deleted file mode 100644 index b7921a4d3..000000000 --- a/docs/api/stacking/get-pox-cycle-signers.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns signers for a PoX cycle", - "additionalProperties": false, - "title": "PoxCycleSignersListResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of signers to return" - }, - "offset": { - "type": "integer", - "description": "The number to signers to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "The total number of signers" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/stacking/signer.schema.json" - } - } - } -} diff --git a/docs/api/stacking/get-pox-cycles.example.json b/docs/api/stacking/get-pox-cycles.example.json deleted file mode 100644 index ea1502c1e..000000000 --- a/docs/api/stacking/get-pox-cycles.example.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "total": 3, - "results": [ - { - "block_height": 50, - "cycle_number": 14, - "index_block_hash": "0xf5be33abc4e508bdaf2191e88339372edcb3358c44e2a31e1b9b44f2880dde09", - "total_signers": 3, - "total_stacked_amount": "1372502700000000000", - "total_weight": 9 - }, - { - "block_height": 22, - "cycle_number": 13, - "index_block_hash": "0x5077c7d971dd83cd3ba19dca579e3cc8dcf17913186b66093c94520e50d3b7b2", - "total_signers": 3, - "total_stacked_amount": "1372502700000000000", - "total_weight": 9 - }, - { - "block_height": 13, - "cycle_number": 12, - "index_block_hash": "0x62d06851fe03f17cb45a488ae70bd8e0c5c308c523f37814ad4df36bd2108713", - "total_signers": 3, - "total_stacked_amount": "1372502700000000000", - "total_weight": 9 - } - ] -} diff --git a/docs/api/stacking/get-pox-cycles.schema.json b/docs/api/stacking/get-pox-cycles.schema.json deleted file mode 100644 index 678712028..000000000 --- a/docs/api/stacking/get-pox-cycles.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "GET request that returns PoX cycles", - "additionalProperties": false, - "title": "PoxCycleListResponse", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of cycles to return" - }, - "offset": { - "type": "integer", - "description": "The number to cycles to skip (starting at `0`)", - "default": 0 - }, - "total": { - "type": "integer", - "description": "The total number of cycles" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/stacking/pox-cycle.schema.json" - } - } - } -} diff --git a/docs/api/tokens/get-ft-holders.example.json b/docs/api/tokens/get-ft-holders.example.json deleted file mode 100644 index 3a08e584b..000000000 --- a/docs/api/tokens/get-ft-holders.example.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "limit": 100, - "offset": 0, - "total": 3, - "total_supply": "11700", - "results": [ - { - "address": "SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA2K", - "balance": "10000" - }, - { - "address": "SP3WJYXJZ4QK2V5V9VX2VXVZ6VXVZ6V2V5V2V2V2V", - "balance": "900" - }, - { - "address": "SP3WJYXJZ4QK2V5V9VX2VXVZ6VXVZ6V2V5V2V2V2V", - "balance": "800" - } - ] -} diff --git a/docs/api/tokens/get-ft-holders.schema.json b/docs/api/tokens/get-ft-holders.schema.json deleted file mode 100644 index 3ce0509bd..000000000 --- a/docs/api/tokens/get-ft-holders.schema.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "description": "List of Fungible Token holders", - "title": "FungibleTokenHolderList", - "type": "object", - "required": [ - "total_supply", - "results", - "limit", - "offset", - "total" - ], - "additionalProperties": false, - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of holders to return" - }, - "offset": { - "type": "integer", - "description": "The number to holders to skip (starting at `0`)" - }, - "total": { - "type": "integer", - "description": "The number of holders available" - }, - "total_supply": { - "type": "string", - "description": "The total supply of the token (the sum of all balances)" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/tokens/ft-holder-entry.schema.json" - } - } - } -} diff --git a/docs/api/tokens/get-non-fungible-token-history-tx-metadata.example.schema.json b/docs/api/tokens/get-non-fungible-token-history-tx-metadata.example.schema.json deleted file mode 100644 index f65d990c9..000000000 --- a/docs/api/tokens/get-non-fungible-token-history-tx-metadata.example.schema.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "limit": 50, - "offset": 0, - "results": [ - { - "sender": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "recipient": "SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v4", - "event_index": 0, - "asset_event_type": "transfer", - "tx": { - "tx_id": "0x4510e6cff6414747f402126b92e35d90165f9f5e1f2750f50ed2b8e052b25108", - "nonce": 44, - "fee_rate": "143600", - "sender_address": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "non_fungible", - "condition_code": "sent", - "principal": { - "type_id": "principal_standard", - "address": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3" - }, - "asset": { - "contract_name": "the-explorer-guild", - "asset_name": "The-Explorer-Guild", - "contract_address": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173" - }, - "asset_value": { - "hex": "0x01000000000000000000000000000009c5", - "repr": "u2501" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0x236721170b99d5dc0be2e77b5f5e0394ffe49af7862c3e82b91245b50e28d191", - "parent_block_hash": "0xdf9e6a371ef6706ed9e5362f61981d3e9e1b985acb67495490bacc40391d7372", - "block_height": 37482, - "burn_block_time": 1636673415, - "burn_block_time_iso": "2021-11-11T23:30:15.000Z", - "parent_burn_block_time": 1636672174, - "parent_burn_block_time_iso": "2021-11-11T23:09:34.000Z", - "canonical": true, - "tx_index": 35, - "tx_status": "success", - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 1, - "events": [], - "execution_cost_read_count": 17, - "execution_cost_read_length": 50450, - "execution_cost_runtime": 54533000, - "execution_cost_write_count": 2, - "execution_cost_write_length": 685, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v4", - "function_name": "list-asset", - "function_signature": "(define-public (list-asset (tradables trait_reference) (tradable-id uint) (price uint) (commission uint)))", - "function_args": [ - { - "hex": "0x061605d06be54b4b9fa14cb9bd464635c0bf5287e313127468652d6578706c6f7265722d6775696c64", - "repr": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild", - "name": "tradables", - "type": "trait_reference" - }, - { - "hex": "0x01000000000000000000000000000009c5", - "repr": "u2501", - "name": "tradable-id", - "type": "uint" - }, - { - "hex": "0x0100000000000000000000000005f5e100", - "repr": "u100000000", - "name": "price", - "type": "uint" - }, - { - "hex": "0x0100000000000000000000000000000064", - "repr": "u100", - "name": "commission", - "type": "uint" - } - ] - } - } - }, - { - "sender": null, - "recipient": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "event_index": 1, - "asset_event_type": "mint", - "tx": { - "tx_id": "0x3ab1ac33ba0a4fb473ee5a2e9d73208a7aceef2d40fea283e3126bda61524ad0", - "nonce": 37, - "fee_rate": "81200", - "sender_address": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "100000000", - "principal": { - "type_id": "principal_standard", - "address": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0xe90233fb36b6a932de91af1b030723ca71335eed7b0792f2c382a827beb5c2f3", - "parent_block_hash": "0x3c5657455ed593f16b85619814b10e32040dd13d263f1a423ba04a2c234f8ee9", - "block_height": 36776, - "burn_block_time": 1636211530, - "burn_block_time_iso": "2021-11-06T15:12:10.000Z", - "parent_burn_block_time": 1636211109, - "parent_burn_block_time_iso": "2021-11-06T15:05:09.000Z", - "canonical": true, - "tx_index": 15, - "tx_status": "success", - "tx_result": { - "hex": "0x0701000000000000000000000000000009c5", - "repr": "(ok u2501)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 14, - "execution_cost_read_length": 91190, - "execution_cost_runtime": 92297000, - "execution_cost_write_count": 3, - "execution_cost_write_length": 19, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } - } - ] -} diff --git a/docs/api/tokens/get-non-fungible-token-history.example.schema.json b/docs/api/tokens/get-non-fungible-token-history.example.schema.json deleted file mode 100644 index 01b99d8bc..000000000 --- a/docs/api/tokens/get-non-fungible-token-history.example.schema.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "limit": 50, - "offset": 0, - "total": 2, - "results": [ - { - "sender": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "recipient": "SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v4", - "event_index": 0, - "asset_event_type": "transfer", - "tx_id": "0x4510e6cff6414747f402126b92e35d90165f9f5e1f2750f50ed2b8e052b25108" - }, - { - "sender": null, - "recipient": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "event_index": 1, - "asset_event_type": "mint", - "tx_id": "0x3ab1ac33ba0a4fb473ee5a2e9d73208a7aceef2d40fea283e3126bda61524ad0" - } - ] -} diff --git a/docs/api/tokens/get-non-fungible-token-history.schema.json b/docs/api/tokens/get-non-fungible-token-history.schema.json deleted file mode 100644 index fc55bc95d..000000000 --- a/docs/api/tokens/get-non-fungible-token-history.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "description": "List of Non-Fungible Token history events", - "title": "NonFungibleTokenHistoryEventList", - "type": "object", - "required": [ - "results", - "limit", - "offset", - "total" - ], - "additionalProperties": false, - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of events to return" - }, - "offset": { - "type": "integer", - "description": "The number to events to skip (starting at `0`)" - }, - "total": { - "type": "integer", - "description": "The number of events available" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/tokens/non-fungible-token-history-event.schema.json" - } - } - } -} diff --git a/docs/api/tokens/get-non-fungible-token-holdings-tx-metadata.example.schema.json b/docs/api/tokens/get-non-fungible-token-holdings-tx-metadata.example.schema.json deleted file mode 100644 index 4d7721c6e..000000000 --- a/docs/api/tokens/get-non-fungible-token-holdings-tx-metadata.example.schema.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "limit": 50, - "offset": 0, - "total": 3, - "results": [ - { - "asset_identifier": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild", - "value": { - "hex": "0x0100000000000000000000000000000803", - "repr": "u2051" - }, - "block_height": 36442, - "tx": { - "tx_id": "0x12e6f88724d0e630de26c376f172cf1781e25435e2b4ee54d36a949b244e429c", - "nonce": 7, - "fee_rate": "812000", - "sender_address": "SP3BK1NNSWN719Z6KDW05RBGVS940YCN6X84STYPR", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "100000000", - "principal": { - "type_id": "principal_standard", - "address": "SP3BK1NNSWN719Z6KDW05RBGVS940YCN6X84STYPR" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0x8a809916e35577337c3f9812a57d61666fde63932b1bdd1c4d1e2f24fb72d46c", - "parent_block_hash": "0xacf8dd56e08bd7986a5bae5e0f13d8dca8cb3a2dc5a1c4d739fda3b3b378b01d", - "block_height": 36442, - "burn_block_time": 1635994340, - "burn_block_time_iso": "2021-11-04T02:52:20.000Z", - "parent_burn_block_time": 1635994054, - "parent_burn_block_time_iso": "2021-11-04T02:47:34.000Z", - "canonical": true, - "tx_index": 4, - "tx_status": "success", - "tx_result": { - "hex": "0x070100000000000000000000000000000803", - "repr": "(ok u2051)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 14, - "execution_cost_read_length": 91190, - "execution_cost_runtime": 92297000, - "execution_cost_write_count": 3, - "execution_cost_write_length": 19, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } - }, - { - "asset_identifier": "SP2BE8TZATXEVPGZ8HAFZYE5GKZ02X0YDKAN7ZTGW.arties::arties", - "value": { - "hex": "0x01000000000000000000000000000004f3", - "repr": "u1267" - }, - "block_height": 37477, - "tx": { - "tx_id": "0xddc464c5e20a78dc5ac351913e0d9b9cce76fc955cc4599e0cccad960998f130", - "nonce": 10, - "fee_rate": "148800", - "sender_address": "SP3BK1NNSWN719Z6KDW05RBGVS940YCN6X84STYPR", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_less_than_or_equal_to", - "amount": "98000000", - "principal": { - "type_id": "principal_standard", - "address": "SP3BK1NNSWN719Z6KDW05RBGVS940YCN6X84STYPR" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0xe69b275471bd199f957d82af1c36114695dbc9aa350e012c6326af4d9e4f3e9c", - "parent_block_hash": "0xe3f50b1c2ef72d44ee5ab84063f49b5662062a62160c783c1c2cc5ca424dcdeb", - "block_height": 37477, - "burn_block_time": 1636668151, - "burn_block_time_iso": "2021-11-11T22:02:31.000Z", - "parent_burn_block_time": 1636666649, - "parent_burn_block_time_iso": "2021-11-11T21:37:29.000Z", - "canonical": true, - "tx_index": 38, - "tx_status": "success", - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "microblock_hash": "0x92cb7e692a486210dc50a380e458cdf93c77d90b69d2a9cf29f09383b8b77937", - "microblock_sequence": 0, - "microblock_canonical": true, - "event_count": 5, - "events": [], - "execution_cost_read_count": 18, - "execution_cost_read_length": 6832, - "execution_cost_runtime": 8339000, - "execution_cost_write_count": 6, - "execution_cost_write_length": 22, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2BE8TZATXEVPGZ8HAFZYE5GKZ02X0YDKAN7ZTGW.arties", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } - }, - { - "asset_identifier": "SP000000000000000000002Q6VF78.bns::names", - "value": { - "hex": "0x0c00000002046e616d65020000000672616661656c096e616d6573706163650200000003627463", - "repr": "(tuple (name 0x72616661656c) (namespace 0x627463))" - }, - "block_height": 17250, - "tx": { - "tx_id": "0x0153a41ed24a0e1d32f66ea98338df09f942571ca66359e28bdca79ccd0305cf", - "nonce": 4, - "fee_rate": "228", - "sender_address": "SP3BK1NNSWN719Z6KDW05RBGVS940YCN6X84STYPR", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0xb0a0832ece862e9b0d4a02e5f5ef427b09e9880fd3c834fcf63cb2617eac899c", - "parent_block_hash": "0xc3a3a6866cd8bd01b80f28d158eb14e0bd6e11d4b3de2f13f15c5c5b3721c4f0", - "block_height": 17250, - "burn_block_time": 1622650415, - "burn_block_time_iso": "2021-06-02T16:13:35.000Z", - "parent_burn_block_time": 1622649808, - "parent_burn_block_time_iso": "2021-06-02T16:03:28.000Z", - "canonical": true, - "tx_index": 74, - "tx_status": "success", - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 17, - "execution_cost_read_length": 44630, - "execution_cost_runtime": 56773000, - "execution_cost_write_count": 4, - "execution_cost_write_length": 604, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP000000000000000000002Q6VF78.bns", - "function_name": "name-register", - "function_signature": "(define-public (name-register (namespace (buff 20)) (name (buff 48)) (salt (buff 20)) (zonefile-hash (buff 20))))", - "function_args": [ - { - "hex": "0x0200000003627463", - "repr": "0x627463", - "name": "namespace", - "type": "(buff 20)" - }, - { - "hex": "0x020000000672616661656c", - "repr": "0x72616661656c", - "name": "name", - "type": "(buff 48)" - }, - { - "hex": "0x020000001419db1f02d2b7ac9cddc8f98b6065d3fad558dcf4", - "repr": "0x19db1f02d2b7ac9cddc8f98b6065d3fad558dcf4", - "name": "salt", - "type": "(buff 20)" - }, - { - "hex": "0x0200000014ab4ef66dae18da2ecfe7826bc7d8eaf0b19950c4", - "repr": "0xab4ef66dae18da2ecfe7826bc7d8eaf0b19950c4", - "name": "zonefile-hash", - "type": "(buff 20)" - } - ] - } - } - } - ] -} diff --git a/docs/api/tokens/get-non-fungible-token-holdings.example.schema.json b/docs/api/tokens/get-non-fungible-token-holdings.example.schema.json deleted file mode 100644 index d1cb2172c..000000000 --- a/docs/api/tokens/get-non-fungible-token-holdings.example.schema.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "limit": 50, - "offset": 0, - "total": 3, - "results": [ - { - "asset_identifier": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild", - "value": { - "hex": "0x0100000000000000000000000000000803", - "repr": "u2051" - }, - "block_height": 36442, - "tx_id": "0x12e6f88724d0e630de26c376f172cf1781e25435e2b4ee54d36a949b244e429c" - }, - { - "asset_identifier": "SP2BE8TZATXEVPGZ8HAFZYE5GKZ02X0YDKAN7ZTGW.arties::arties", - "value": { - "hex": "0x01000000000000000000000000000004f3", - "repr": "u1267" - }, - "block_height": 37477, - "tx_id": "0xddc464c5e20a78dc5ac351913e0d9b9cce76fc955cc4599e0cccad960998f130" - }, - { - "asset_identifier": "SP000000000000000000002Q6VF78.bns::names", - "value": { - "hex": "0x0c00000002046e616d65020000000672616661656c096e616d6573706163650200000003627463", - "repr": "(tuple (name 0x72616661656c) (namespace 0x627463))" - }, - "block_height": 17250, - "tx_id": "0x0153a41ed24a0e1d32f66ea98338df09f942571ca66359e28bdca79ccd0305cf" - } - ] -} diff --git a/docs/api/tokens/get-non-fungible-token-holdings.schema.json b/docs/api/tokens/get-non-fungible-token-holdings.schema.json deleted file mode 100644 index cc2cab325..000000000 --- a/docs/api/tokens/get-non-fungible-token-holdings.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "description": "List of Non-Fungible Token holdings", - "title": "NonFungibleTokenHoldingsList", - "type": "object", - "required": [ - "results", - "limit", - "offset", - "total" - ], - "additionalProperties": false, - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of Non-Fungible Token holdings to return" - }, - "offset": { - "type": "integer", - "description": "The number to Non-Fungible Token holdings to skip (starting at `0`)" - }, - "total": { - "type": "integer", - "description": "The number of Non-Fungible Token holdings available" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/tokens/non-fungible-token-holding.schema.json" - } - } - } -} diff --git a/docs/api/tokens/get-non-fungible-token-mints-tx-metadata.example.schema.json b/docs/api/tokens/get-non-fungible-token-mints-tx-metadata.example.schema.json deleted file mode 100644 index 0b971e8f8..000000000 --- a/docs/api/tokens/get-non-fungible-token-mints-tx-metadata.example.schema.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "limit": 5, - "offset": 0, - "total": 2503, - "results": [ - { - "recipient": "SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009c7", - "repr": "u2503" - }, - "tx": { - "tx_id": "0xd5c199447bc5f08d1821350455f4c103ad769976c7a6b745182782d53b5c7922", - "nonce": 4, - "fee_rate": "81200", - "sender_address": "SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "100000000", - "principal": { - "type_id": "principal_standard", - "address": "SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0xde60b4b100b1828dc6383db869b1e051fe68ac3fb0a72fffaae1b18af3e3c675", - "parent_block_hash": "0xe90233fb36b6a932de91af1b030723ca71335eed7b0792f2c382a827beb5c2f3", - "block_height": 36777, - "burn_block_time": 1636213080, - "burn_block_time_iso": "2021-11-06T15:38:00.000Z", - "parent_burn_block_time": 1636211530, - "parent_burn_block_time_iso": "2021-11-06T15:12:10.000Z", - "canonical": true, - "tx_index": 11, - "tx_status": "success", - "tx_result": { - "hex": "0x0701000000000000000000000000000009c7", - "repr": "(ok u2503)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 14, - "execution_cost_read_length": 91190, - "execution_cost_runtime": 92297000, - "execution_cost_write_count": 3, - "execution_cost_write_length": 19, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } - }, - { - "recipient": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009c5", - "repr": "u2501" - }, - "tx": { - "tx_id": "0x3ab1ac33ba0a4fb473ee5a2e9d73208a7aceef2d40fea283e3126bda61524ad0", - "nonce": 37, - "fee_rate": "81200", - "sender_address": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "100000000", - "principal": { - "type_id": "principal_standard", - "address": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0xe90233fb36b6a932de91af1b030723ca71335eed7b0792f2c382a827beb5c2f3", - "parent_block_hash": "0x3c5657455ed593f16b85619814b10e32040dd13d263f1a423ba04a2c234f8ee9", - "block_height": 36776, - "burn_block_time": 1636211530, - "burn_block_time_iso": "2021-11-06T15:12:10.000Z", - "parent_burn_block_time": 1636211109, - "parent_burn_block_time_iso": "2021-11-06T15:05:09.000Z", - "canonical": true, - "tx_index": 15, - "tx_status": "success", - "tx_result": { - "hex": "0x0701000000000000000000000000000009c5", - "repr": "(ok u2501)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 14, - "execution_cost_read_length": 91190, - "execution_cost_runtime": 92297000, - "execution_cost_write_count": 3, - "execution_cost_write_length": 19, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } - }, - { - "recipient": "SPYZ2K1ZTG8NGKNY8VCX8NDKCGCCE9WZT85AGQR", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009c6", - "repr": "u2502" - }, - "tx": { - "tx_id": "0xaaff669db77380600b069fbd3ba481e5764e3672246f952bdd976cd3528019e8", - "nonce": 240, - "fee_rate": "81200", - "sender_address": "SPYZ2K1ZTG8NGKNY8VCX8NDKCGCCE9WZT85AGQR", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "100000000", - "principal": { - "type_id": "principal_standard", - "address": "SPYZ2K1ZTG8NGKNY8VCX8NDKCGCCE9WZT85AGQR" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0xe90233fb36b6a932de91af1b030723ca71335eed7b0792f2c382a827beb5c2f3", - "parent_block_hash": "0x3c5657455ed593f16b85619814b10e32040dd13d263f1a423ba04a2c234f8ee9", - "block_height": 36776, - "burn_block_time": 1636211530, - "burn_block_time_iso": "2021-11-06T15:12:10.000Z", - "parent_burn_block_time": 1636211109, - "parent_burn_block_time_iso": "2021-11-06T15:05:09.000Z", - "canonical": true, - "tx_index": 16, - "tx_status": "success", - "tx_result": { - "hex": "0x0701000000000000000000000000000009c6", - "repr": "(ok u2502)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 14, - "execution_cost_read_length": 91190, - "execution_cost_runtime": 92297000, - "execution_cost_write_count": 3, - "execution_cost_write_length": 19, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } - }, - { - "recipient": "SP2EV985DXEHEB2FKW3Z642R0QWQGXTRDYXNRVCYY", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009b6", - "repr": "u2486" - }, - "tx": { - "tx_id": "0xc416218ed09e2252888a620d89a5e8fdff43188c1c4ef46b6bbc4e1901609ef6", - "nonce": 66, - "fee_rate": "1110000", - "sender_address": "SP2EV985DXEHEB2FKW3Z642R0QWQGXTRDYXNRVCYY", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "100000000", - "principal": { - "type_id": "principal_standard", - "address": "SP2EV985DXEHEB2FKW3Z642R0QWQGXTRDYXNRVCYY" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0x97d152c9de27295ebbecf1c5f89b8f693b868f0759ebaa848fe3ce773d7a6576", - "parent_block_hash": "0x93391aee7c5241a73dbe905f56856743ec14a0bb679c0dfd1f2bf31daa515e13", - "block_height": 36774, - "burn_block_time": 1636209852, - "burn_block_time_iso": "2021-11-06T14:44:12.000Z", - "parent_burn_block_time": 1636209581, - "parent_burn_block_time_iso": "2021-11-06T14:39:41.000Z", - "canonical": true, - "tx_index": 1, - "tx_status": "success", - "tx_result": { - "hex": "0x0701000000000000000000000000000009b6", - "repr": "(ok u2486)" - }, - "microblock_hash": "0x7c1b380d2cea9c0966a66c35aa90c2ad047ea41aa8ab436d78fb780949140407", - "microblock_sequence": 0, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 14, - "execution_cost_read_length": 91190, - "execution_cost_runtime": 92297000, - "execution_cost_write_count": 3, - "execution_cost_write_length": 19, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } - }, - { - "recipient": "SPP1VDQKF2H90QZVRBN0K6Z90EKES9NSMYKXHVGH", - "event_index": 9, - "value": { - "hex": "0x01000000000000000000000000000009bb", - "repr": "u2491" - }, - "tx": { - "tx_id": "0xbd272748e0d632f8122126f8b000fa0f84c96f464e6fb91b03bb8b9c5c12ed12", - "nonce": 45, - "fee_rate": "166400", - "sender_address": "SPP1VDQKF2H90QZVRBN0K6Z90EKES9NSMYKXHVGH", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "500000000", - "principal": { - "type_id": "principal_standard", - "address": "SPP1VDQKF2H90QZVRBN0K6Z90EKES9NSMYKXHVGH" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0x97d152c9de27295ebbecf1c5f89b8f693b868f0759ebaa848fe3ce773d7a6576", - "parent_block_hash": "0x93391aee7c5241a73dbe905f56856743ec14a0bb679c0dfd1f2bf31daa515e13", - "block_height": 36774, - "burn_block_time": 1636209852, - "burn_block_time_iso": "2021-11-06T14:44:12.000Z", - "parent_burn_block_time": 1636209581, - "parent_burn_block_time_iso": "2021-11-06T14:39:41.000Z", - "canonical": true, - "tx_index": 12, - "tx_status": "success", - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "microblock_hash": "0x7c1b380d2cea9c0966a66c35aa90c2ad047ea41aa8ab436d78fb780949140407", - "microblock_sequence": 0, - "microblock_canonical": true, - "event_count": 10, - "events": [], - "execution_cost_read_count": 58, - "execution_cost_read_length": 139642, - "execution_cost_runtime": 145197000, - "execution_cost_write_count": 15, - "execution_cost_write_length": 95, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim-five", - "function_signature": "(define-public (claim-five ))" - } - } - } - ] -} diff --git a/docs/api/tokens/get-non-fungible-token-mints.example.schema.json b/docs/api/tokens/get-non-fungible-token-mints.example.schema.json deleted file mode 100644 index 6d07e4cf0..000000000 --- a/docs/api/tokens/get-non-fungible-token-mints.example.schema.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "limit": 5, - "offset": 0, - "total": 2503, - "results": [ - { - "recipient": "SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009c7", - "repr": "u2503" - }, - "tx_id": "0xd5c199447bc5f08d1821350455f4c103ad769976c7a6b745182782d53b5c7922" - }, - { - "recipient": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009c5", - "repr": "u2501" - }, - "tx_id": "0x3ab1ac33ba0a4fb473ee5a2e9d73208a7aceef2d40fea283e3126bda61524ad0" - }, - { - "recipient": "SPYZ2K1ZTG8NGKNY8VCX8NDKCGCCE9WZT85AGQR", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009c6", - "repr": "u2502" - }, - "tx_id": "0xaaff669db77380600b069fbd3ba481e5764e3672246f952bdd976cd3528019e8" - }, - { - "recipient": "SP2EV985DXEHEB2FKW3Z642R0QWQGXTRDYXNRVCYY", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009b6", - "repr": "u2486" - }, - "tx_id": "0xc416218ed09e2252888a620d89a5e8fdff43188c1c4ef46b6bbc4e1901609ef6" - }, - { - "recipient": "SPP1VDQKF2H90QZVRBN0K6Z90EKES9NSMYKXHVGH", - "event_index": 9, - "value": { - "hex": "0x01000000000000000000000000000009bb", - "repr": "u2491" - }, - "tx_id": "0xbd272748e0d632f8122126f8b000fa0f84c96f464e6fb91b03bb8b9c5c12ed12" - } - ] -} diff --git a/docs/api/tokens/get-non-fungible-token-mints.schema.json b/docs/api/tokens/get-non-fungible-token-mints.schema.json deleted file mode 100644 index 03063c9ee..000000000 --- a/docs/api/tokens/get-non-fungible-token-mints.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "description": "List of Non-Fungible Token mint events for an asset identifier", - "title": "NonFungibleTokenMintList", - "type": "object", - "required": [ - "results", - "limit", - "offset", - "total" - ], - "additionalProperties": false, - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of mint events to return" - }, - "offset": { - "type": "integer", - "description": "The number to mint events to skip (starting at `0`)" - }, - "total": { - "type": "integer", - "description": "The number of mint events available" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/tokens/non-fungible-token-mint.schema.json" - } - } - } -} diff --git a/docs/api/transaction/get-mempool-stats.example.json b/docs/api/transaction/get-mempool-stats.example.json deleted file mode 100644 index c802960db..000000000 --- a/docs/api/transaction/get-mempool-stats.example.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "tx_type_counts": { - "token_transfer": 130, - "smart_contract": 2, - "contract_call": 310, - "poison_microblock": 0 - }, - "tx_simple_fee_averages": { - "token_transfer": { - "p25": 3000, - "p50": 3000, - "p75": 6000, - "p95": 401199.9999999995 - }, - "smart_contract": { - "p25": 837500, - "p50": 925000, - "p75": 1012500, - "p95": 1082500 - }, - "contract_call": { - "p25": 3000, - "p50": 10368, - "p75": 100000, - "p95": 1000000 - }, - "poison_microblock": { - "p25": null, - "p50": null, - "p75": null, - "p95": null - } - }, - "tx_ages": { - "token_transfer": { - "p25": 167.5, - "p50": 45, - "p75": 1, - "p95": 0 - }, - "smart_contract": { - "p25": 185.5, - "p50": 129, - "p75": 72.5, - "p95": 27.30000000000001 - }, - "contract_call": { - "p25": 189, - "p50": 127.5, - "p75": 9.5, - "p95": 0 - }, - "poison_microblock": { - "p25": null, - "p50": null, - "p75": null, - "p95": null - } - }, - "tx_byte_sizes": { - "token_transfer": { - "p25": 180, - "p50": 180, - "p75": 180, - "p95": 180 - }, - "smart_contract": { - "p25": 706.75, - "p50": 814.5, - "p75": 922.25, - "p95": 1008.45 - }, - "contract_call": { - "p25": 291, - "p50": 435, - "p75": 462, - "p95": 597 - }, - "poison_microblock": { - "p25": null, - "p50": null, - "p75": null, - "p95": null - } - } -} diff --git a/docs/api/transaction/get-mempool-stats.schema.json b/docs/api/transaction/get-mempool-stats.schema.json deleted file mode 100644 index 678eceeda..000000000 --- a/docs/api/transaction/get-mempool-stats.schema.json +++ /dev/null @@ -1,414 +0,0 @@ -{ - "description": "GET request that returns stats on mempool transactions", - "title": "MempoolTransactionStatsResponse", - "type": "object", - "additionalProperties": false, - "required": [ - "tx_type_counts", - "tx_simple_fee_averages", - "tx_ages", - "tx_byte_sizes" - ], - "properties": { - "tx_type_counts": { - "type": "object", - "description": "Number of tranasction in the mempool, broken down by transaction type.", - "additionalProperties": false, - "required": [ - "token_transfer", - "smart_contract", - "contract_call", - "poison_microblock" - ], - "properties": { - "token_transfer": { - "type": "number" - }, - "smart_contract": { - "type": "number" - }, - "contract_call": { - "type": "number" - }, - "poison_microblock": { - "type": "number" - } - } - }, - "tx_simple_fee_averages": { - "type": "object", - "description": "The simple mean (average) transaction fee, broken down by transaction type. Note that this does not factor in actual execution costs. The average fee is not a reliable metric for calculating a fee for a new transaction.", - "additionalProperties": false, - "required": [ - "token_transfer", - "smart_contract", - "contract_call", - "poison_microblock" - ], - "properties": { - "token_transfer": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "smart_contract": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "contract_call": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "poison_microblock": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - } - } - }, - "tx_ages": { - "type": "object", - "description": "The average time (in blocks) that transactions have lived in the mempool. The start block height is simply the current chain-tip of when the attached Stacks node receives the transaction. This timing can be different across Stacks nodes / API instances due to propagation timing differences in the p2p network.", - "additionalProperties": false, - "required": [ - "token_transfer", - "smart_contract", - "contract_call", - "poison_microblock" - ], - "properties": { - "token_transfer": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "smart_contract": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "contract_call": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "poison_microblock": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - } - } - }, - "tx_byte_sizes": { - "type": "object", - "description": "The average byte size of transactions in the mempool, broken down by transaction type.", - "additionalProperties": false, - "required": [ - "token_transfer", - "smart_contract", - "contract_call", - "poison_microblock" - ], - "properties": { - "token_transfer": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "smart_contract": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "contract_call": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - }, - "poison_microblock": { - "type": "object", - "additionalProperties": false, - "required": [ - "p25", - "p50", - "p75", - "p95" - ], - "properties": { - "p25": { - "type": "number", - "nullable": true - }, - "p50": { - "type": "number", - "nullable": true - }, - "p75": { - "type": "number", - "nullable": true - }, - "p95": { - "type": "number", - "nullable": true - } - } - } - } - } - } -} diff --git a/docs/api/transaction/get-mempool-transactions.example.json b/docs/api/transaction/get-mempool-transactions.example.json deleted file mode 100644 index 02ee1513a..000000000 --- a/docs/api/transaction/get-mempool-transactions.example.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "limit": 96, - "offset": 0, - "total": 5, - "results": [ - { - "tx_id": "0xb31df5a363dad31723324cb5e0eefa04d491519fd30827a521cbc830114aa50c", - "tx_status": "pending", - "tx_type": "token_transfer", - "receipt_time": 1598288370, - "receipt_time_iso": "2020-08-24T16:59:30.000Z", - "fee_rate": "180", - "sender_address": "STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "any", - "token_transfer": { - "recipient_address": "ST1GY25DM8RZV4X15X07THRZ2C5NMWPGQWKFGV87F", - "amount": "500000", - "memo": "0x46617563657400000000000000000000000000000000000000000000000000000000" - } - }, - { - "tx_id": "0x5bed8e3f801cb4e2c74d2815a092f7c1c6a35f2fce4a80c80ca70848d34cb395", - "tx_status": "pending", - "tx_type": "token_transfer", - "receipt_time": 1598282326, - "receipt_time_iso": "2020-08-24T15:18:46.000Z", - "fee_rate": "180", - "sender_address": "ST1PS1KF93VBY5A1JV7TM66KN046KP3E3761DBSAG", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "any", - "token_transfer": { - "recipient_address": "ST2H33S8SEY27QKEKQKR6S5PECYPKY45CQYGGQR8X", - "amount": "1000", - "memo": "0x00000000000000000000000000000000000000000000000000000000000000000000" - } - }, - { - "tx_id": "0x9916036fde08a207e581cdcabc18ff55469861cb81194ab0e3e7c9a02cd5a17c", - "tx_status": "pending", - "tx_type": "smart_contract", - "receipt_time": 1598258958, - "receipt_time_iso": "2020-08-24T08:49:18.000Z", - "fee_rate": "2000", - "sender_address": "ST2R1XSFXYHCSFE426HP45TTD8ZWV9XHX2SRP3XA8", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "any", - "smart_contract": { - "contract_id": "ST2R1XSFXYHCSFE426HP45TTD8ZWV9XHX2SRP3XA8.test-loans-1", - "source_code": "(define-data-var stx-loaned int 0)\n(define-data-var lockup-period int 0)\n(define-data-var stx-return int 0)\n(define-public (get-stx-return (stx uint) (months uint))\n (ok\n (begin\n (var-set stx-loaned (to-int(stx))\n (var-set lockup-period (to-int(months))\n (calculate-stx-return)\n (print (var-get stx-return))\n (transfer-to-server)\n )\n )\n)\n(define-private (calculate-stx-return)\n (ok\n (begin\n (var-set stx-return (- (+ (* (/ (* (var-get stx-loaned) 5) 100) (var-get lockup-period)) (var-get stx-loaned)) 5))\n )\n )\n)\n(define-private (transfer-to-server)\n (begin\n (unwrap-panic (stx-transfer? (to-uint (var-get stx-loaned)) tx-sender 'ST2R1XSFXYHCSFE426HP45TTD8ZWV9XHX2SRP3XA8))\n (ok (to-uint (var-get stx-loaned)))\n )\n)" - } - }, - { - "tx_id": "0x871fb186c8d6ac6ede2822c71074d9884b593c0d7f2d0d6e8516e615484d7501", - "tx_status": "pending", - "tx_type": "smart_contract", - "receipt_time": 1598230365, - "receipt_time_iso": "2020-08-24T00:52:45.000Z", - "fee_rate": "2000", - "sender_address": "ST1FJGMWPGM1P7N0K3N9QEPZK5H1VDC5YWTVMEAZ1", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "any", - "smart_contract": { - "contract_id": "ST1FJGMWPGM1P7N0K3N9QEPZK5H1VDC5YWTVMEAZ1.contract-hook-1598230358601", - "source_code": ";; ## CUSTOM FUNCTION TO EXTRACT A SUBSTRING\n\n(define-read-only (subs (source (buff 10)) \n (start int) \n (end int))\n (begin\n (unwrap-panic (if (and (<= 0 start) (<= start 10)) (ok 1) (err \"Out of bounds: start\")))\n (unwrap-panic (if (and (<= 0 end) (<= end 10)) (ok 1) (err \"Out of bounds: end\")))\n (let ((temp1 (fold subs1 source \n {start: start, end: end, cursor: 1, data: \"\"})))\n (let ((data (get data temp1))) \n data))))\n \n;; Call the function to extract the substring between the bounds:\n\n;; (subs \"123456789\" 2 5)\n\n(define-read-only (subs1 \n (ch (buff 1))\n (acc {data: (buff 10), \n start: int,\n end: int,\n cursor: int})) \n (let ((data (get data acc))\n (start (get start acc))\n (cursor (get cursor acc))\n (end (get end acc))) \n (let ((temp2 \n {cursor: (+ 1 cursor),\n data: (default-to \"\"\n (as-max-len?\n (concat data \n (if (let ((temp3 start)\n (temp4 cursor)\n (temp5 end))\n (and (<= temp3 temp4)\n (<= temp4 temp5)))\n ch \n \"\"))\n u10))}))\n {start: (get start acc),\n end: (get end acc),\n cursor: (get cursor temp2),\n data: (get data temp2)})))\n" - } - }, - { - "tx_id": "0x66df10d99d3a26018f521d60e9f744b083386c73e47ad39c394d570abee55f1f", - "tx_status": "pending", - "tx_type": "smart_contract", - "receipt_time": 1598230066, - "receipt_time_iso": "2020-08-24T00:47:46.000Z", - "fee_rate": "2000", - "sender_address": "ST1FJGMWPGM1P7N0K3N9QEPZK5H1VDC5YWTVMEAZ1", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "any", - "smart_contract": { - "contract_id": "ST1FJGMWPGM1P7N0K3N9QEPZK5H1VDC5YWTVMEAZ1.contract-hook-1598230054238", - "source_code": "(define-read-only (subs1 \n (ch (buff 1))\n (acc {data: (buff 10), \n start: int,\n end: int,\n cursor: int}))\n (begin\n (unwrap-panic (if (and (<= 1 (get start acc)) (<= (get start acc) 10)) (ok 1) (err \"Out of bounds: start\")))\n (unwrap-panic (if (and (<= 1 (get end acc)) (<= (get end acc) 10)) (ok 1) (err \"Out of bounds: end\")))\n (unwrap-panic (if (and (<= 1 (get cursor acc)) (<= (get cursor acc) 10)) (ok 1) (err \"Out of bounds: cursor\")))\n (let ((data (get data acc))\n (start (get start acc))\n (cursor (get cursor acc))\n (end (get end acc))) \n (let ((temp1 \n {cursor: (+ 1 cursor),\n data: (default-to \"\"\n (as-max-len?\n (concat data \n (if (let ((temp2 start)\n (temp3 cursor)\n (temp4 end))\n (and (<= temp2 temp3)\n (<= temp3 temp4)))\n ch \n \"\"))\n u10))}))\n {start: (get start acc),\n end: (get end acc),\n cursor: (get cursor temp1),\n data: (get data temp1)}))))\n" - } - }, - { - "tx_id": "0x7402d8e52204d6c8cba7465e159e79750338c3ee31d4fe6ddef1d4d226304b65", - "nonce": 1, - "fee_rate": "227", - "sender_address": "SP1HJDP35SSMYP98CG8SHMYHMZDK0A495ZCH6ARYS", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "88884500", - "principal": { - "type_id": "principal_standard", - "address": "SP2J6HSSDYSTM71S0K0KK4YWRKX59JN1AD52M4B59" - } - } - ], - "anchor_mode": "any", - "tx_status": "pending", - "receipt_time": 1626286631, - "receipt_time_iso": "2021-07-14T18:17:11.000Z", - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.send-many-memo", - "function_name": "send-many", - "function_signature": "(define-public (send-many (recipients (list 200 (tuple (memo (buff 34)) (to principal) (ustx uint))))))", - "function_args": [ - { - "hex": "0x0b000000010c00000003046d656d6f020000000e357a62597346716a52336d736b7102746f0516b734e97043840503dc1091661c105d32b7c5c75d047573747801000000000000000000000000054c4514", - "repr": "(list (tuple (memo 0x357a62597346716a52336d736b71) (to SP2VK9TBG8E20A0YW228PC70GBMSBFHE7BNVMKB57) (ustx u88884500)))", - "name": "recipients", - "type": "(list 200 (tuple (memo (buff 34)) (to principal) (ustx uint)))" - } - ] - } - } - ] -} diff --git a/docs/api/transaction/get-mempool-transactions.schema.json b/docs/api/transaction/get-mempool-transactions.schema.json deleted file mode 100644 index be3c6c1ad..000000000 --- a/docs/api/transaction/get-mempool-transactions.schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "description": "GET request that returns transactions", - "title": "MempoolTransactionListResponse", - "type": "object", - "additionalProperties": false, - "required": ["results", "limit", "offset", "total"], - "properties": { - "limit": { - "type": "integer" - }, - "offset": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/mempool-transactions/transaction.schema.json" - } - } - } -} diff --git a/docs/api/transaction/get-raw-transaction.example.json b/docs/api/transaction/get-raw-transaction.example.json deleted file mode 100644 index 3548f3317..000000000 --- a/docs/api/transaction/get-raw-transaction.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "raw_tx": "0x1234" -} \ No newline at end of file diff --git a/docs/api/transaction/get-raw-transaction.schema.json b/docs/api/transaction/get-raw-transaction.schema.json deleted file mode 100644 index ab46300cf..000000000 --- a/docs/api/transaction/get-raw-transaction.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "description": "GET raw transaction", - "title": "GetRawTransactionResult", - "type": "object", - "additionalProperties": false, - "required": ["raw_tx"], - "properties": { - "raw_tx": { - "type":"string", - "description": "A hex encoded serialized transaction" - } - } -} diff --git a/docs/api/transaction/get-transaction-events.example.json b/docs/api/transaction/get-transaction-events.example.json deleted file mode 100644 index 06dbaf5ff..000000000 --- a/docs/api/transaction/get-transaction-events.example.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "limit": 96, - "offset": 0, - "events": [ - { - "event_index": 0, - "event_type": "non_fungible_token_asset", - "tx_id": "0x05ccc123db703a2808afaaf88b6b3240f14391d14fde701bd20d7206c9133af6", - "asset": { - "asset_event_type": "transfer", - "asset_id": "ST000000000000000000002AMW42H.bns::names", - "sender": "STKVDRCTN8C81T22QHR9PG9GPD3V3WPQYBYFHPT4", - "recipient": "STRWN68C36Z7WTDD1TJERTAZ4SXDRMMDB29M4VNQ", - "value": { - "hex": "0x0c00000002046e616d65020000000a62696c616c7465737435096e616d6573706163650200000003627463", - "repr": "(tuple (name 0x62696c616c7465737435) (namespace 0x627463))" - } - } - }, - { - "event_index": 1, - "event_type": "smart_contract_log", - "tx_id": "0x05ccc123db703a2808afaaf88b6b3240f14391d14fde701bd20d7206c9133af6", - "contract_log": { - "contract_id": "ST000000000000000000002AMW42H.bns", - "topic": "print", - "value": { - "hex": "0x0c000000010a6174746163686d656e740c00000003106174746163686d656e742d696e646578010000000000000000000000000000028304686173680200000014b472a266d0bd89c13706a4132ccfb16f7c3b9fcb086d657461646174610c00000004046e616d65020000000a62696c616c7465737435096e616d6573706163650200000003627463026f700d0000000d6e616d652d7472616e736665720974782d73656e646572051a27b6e19aaa1880e842bc709b4130b347b1f2d7f2", - "repr": "(tuple (attachment (tuple (attachment-index u643) (hash 0xb472a266d0bd89c13706a4132ccfb16f7c3b9fcb) (metadata (tuple (name 0x62696c616c7465737435) (namespace 0x627463) (op \"name-transfer\") (tx-sender STKVDRCTN8C81T22QHR9PG9GPD3V3WPQYBYFHPT4))))))" - } - } - } - ] -} diff --git a/docs/api/transaction/get-transaction-events.schema.json b/docs/api/transaction/get-transaction-events.schema.json deleted file mode 100644 index 8461e05c2..000000000 --- a/docs/api/transaction/get-transaction-events.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET event for the given transaction", - "title": "TransactionEventsResponse", - "type": "object", - "additionalProperties": false, - "required": [ - "results", - "limit", - "offset" - ], - "properties": { - "limit": { - "type": "integer" - }, - "offset": { - "type": "integer" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/transaction-events/transaction-event.schema.json" - } - } - } -} diff --git a/docs/api/transaction/get-transactions.example.json b/docs/api/transaction/get-transactions.example.json deleted file mode 100644 index bff8a7196..000000000 --- a/docs/api/transaction/get-transactions.example.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "limit": 10, - "offset": 0, - "total": 101922, - "results": [ - { - "tx_id": "0x20dedbef812e44d712569224411b27324b68ab4667321a4badd5e81ba76bf0eb", - "nonce": 269, - "fee_rate": "0", - "sender_address": "SPQXK10DBF5ECAM30XVE3EJA8DNZF3VE0BK4MKV", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [], - "anchor_mode": "on_chain_only", - "is_unanchored": false, - "block_hash": "0x28a9e2749b82bdc058776781a5abd5c9a6efed38f05545a8a51152655b8e1f4b", - "parent_block_hash": "0x3789b75ccfe7f2acf85c3f069fd5b8f95f73aba5332fa618243957d1c017a2a3", - "block_height": 21709, - "burn_block_height": 51396, - "burn_block_time": 1626286436, - "burn_block_time_iso": "2021-07-14T18:13:56.000Z", - "canonical": true, - "tx_index": 0, - "tx_status": "success", - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 0, - "events": [], - "tx_type": "coinbase", - "coinbase_payload": { - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - } - ] -} diff --git a/docs/api/transaction/get-transactions.schema.json b/docs/api/transaction/get-transactions.schema.json deleted file mode 100644 index e7ca901e0..000000000 --- a/docs/api/transaction/get-transactions.schema.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "description": "GET request that returns transactions", - "title": "TransactionResults", - "type": "object", - "required": ["results", "limit", "offset", "total"], - "additionalProperties": false, - "properties": { - "limit": { - "type": "integer", - "maximum": 200, - "description": "The number of transactions to return" - }, - "offset": { - "type": "integer", - "description": "The number to transactions to skip (starting at `0`)" - }, - "total": { - "type": "integer", - "description": "The number of transactions available" - }, - "results": { - "type": "array", - "items": { - "$ref": "../../entities/transactions/transaction.schema.json" - } - } - } -} diff --git a/docs/api/transaction/post-core-node-transactions-error.example.json b/docs/api/transaction/post-core-node-transactions-error.example.json deleted file mode 100644 index 3cab6ce21..000000000 --- a/docs/api/transaction/post-core-node-transactions-error.example.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "error": "transaction rejected", - "reason": "BadNonce", - "reason_data": { - "actual": 4, - "expected": 0, - "is_origin": true, - "principal": "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH" - }, - "txid": "caf6fd60ae05b0c2d19ef14ab6a7670b1095d117fa7c80224c74e76214d0a791" -} diff --git a/docs/api/transaction/post-core-node-transactions-error.schema.json b/docs/api/transaction/post-core-node-transactions-error.schema.json deleted file mode 100644 index fe5350ed2..000000000 --- a/docs/api/transaction/post-core-node-transactions-error.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "GET request that returns transactions", - "title": "PostCoreNodeTransactionsError", - "type": "object", - "additionalProperties": false, - "required": ["error", "reason", "reason_data", "txid"], - "properties": { - "error": { - "type": "string", - "description": "The error" - }, - "reason": { - "type": "string", - "description": "The reason for the error" - }, - "reason_data": { - "type": "object", - "description": "More details about the reason" - }, - "txid": { - "type": "string", - "description": "The relevant transaction id" - } - } -} diff --git a/docs/entities/address/address-nonces.example.json b/docs/entities/address/address-nonces.example.json deleted file mode 100644 index d68f9848c..000000000 --- a/docs/entities/address/address-nonces.example.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "last_mempool_tx_nonce": 5, - "last_executed_tx_nonce": 2, - "possible_next_nonce": 6, - "detected_missing_nonces": [3, 4], - "detected_mempool_nonces": [] -} diff --git a/docs/entities/address/address-nonces.schema.json b/docs/entities/address/address-nonces.schema.json deleted file mode 100644 index a632ed9dd..000000000 --- a/docs/entities/address/address-nonces.schema.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "description": "The latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions", - "title": "AddressNonces", - "type": "object", - "additionalProperties": false, - "required": [ - "last_mempool_tx_nonce", - "last_executed_tx_nonce", - "possible_next_nonce", - "detected_missing_nonces" - ], - "properties": { - "last_mempool_tx_nonce": { - "type": "integer", - "nullable": true, - "description": "The latest nonce found within mempool transactions sent by this address. Will be null if there are no current mempool transactions for this address." - }, - "last_executed_tx_nonce": { - "type": "integer", - "nullable": true, - "description": "The latest nonce found within transactions sent by this address, including unanchored microblock transactions. Will be null if there are no current transactions for this address." - }, - "possible_next_nonce": { - "type": "integer", - "description": "The likely nonce required for creating the next transaction, based on the last nonces seen by the API. This can be incorrect if the API's mempool or transactions aren't fully synchronized, even by a small amount, or if a previous transaction is still propagating through the Stacks blockchain network when this endpoint is called." - }, - "detected_missing_nonces": { - "type": "array", - "description": "Nonces that appear to be missing and likely causing a mempool transaction to be stuck.", - "items": { - "type": "integer" - } - }, - "detected_mempool_nonces": { - "type": "array", - "description": "Nonces currently in mempool for this address.", - "items": { - "type": "integer" - } - } - } -} diff --git a/docs/entities/address/address-transaction-event.schema.json b/docs/entities/address/address-transaction-event.schema.json deleted file mode 100644 index ae39ccb95..000000000 --- a/docs/entities/address/address-transaction-event.schema.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "description": "Address Transaction Event", - "title": "AddressTransactionEvent", - "type": "object", - "anyOf": [ - { - "type": "object", - "additionalProperties": false, - "required": ["type", "event_index", "data"], - "properties": { - "type": { - "type": "string", - "enum": ["stx"] - }, - "event_index": { - "type": "integer" - }, - "data": { - "type": "object", - "additionalProperties": false, - "required": [ - "amount", "type" - ], - "properties": { - "type": { - "type": "string", - "enum": ["transfer", "mint", "burn"] - }, - "amount": { - "type": "string", - "description": "Amount transferred in micro-STX as an integer string." - }, - "sender": { - "type": "string", - "description": "Principal that sent STX. This is unspecified if the STX were minted." - }, - "recipient": { - "type": "string", - "description": "Principal that received STX. This is unspecified if the STX were burned." - } - } - } - } - }, - { - "type": "object", - "additionalProperties": false, - "required": ["type", "event_index", "data"], - "properties": { - "type": { - "type": "string", - "enum": ["ft"] - }, - "event_index": { - "type": "integer" - }, - "data": { - "type": "object", - "additionalProperties": false, - "required": [ - "amount", "asset_identifier", "type" - ], - "properties": { - "type": { - "type": "string", - "enum": ["transfer", "mint", "burn"] - }, - "asset_identifier": { - "type": "string", - "description": "Fungible Token asset identifier." - }, - "amount": { - "type": "string", - "description": "Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals." - }, - "sender": { - "type": "string", - "description": "Principal that sent the asset." - }, - "recipient": { - "type": "string", - "description": "Principal that received the asset." - } - } - } - } - }, - { - "type": "object", - "additionalProperties": false, - "required": ["type", "event_index", "data"], - "properties": { - "type": { - "type": "string", - "enum": ["nft"] - }, - "event_index": { - "type": "integer" - }, - "data": { - "type": "object", - "additionalProperties": false, - "required": [ - "asset_identifier", "value", "type" - ], - "properties": { - "type": { - "type": "string", - "enum": ["transfer", "mint", "burn"] - }, - "asset_identifier": { - "type": "string", - "description": "Non Fungible Token asset identifier." - }, - "value": { - "type": "object", - "description": "Non Fungible Token asset value.", - "additionalProperties": false, - "required": ["hex", "repr"], - "properties": { - "hex": { - "type": "string" - }, - "repr": { - "type": "string" - } - } - }, - "sender": { - "type": "string", - "description": "Principal that sent the asset." - }, - "recipient": { - "type": "string", - "description": "Principal that received the asset." - } - } - } - } - } - ] -} diff --git a/docs/entities/address/address-transaction.schema.json b/docs/entities/address/address-transaction.schema.json deleted file mode 100644 index 4ad5eb676..000000000 --- a/docs/entities/address/address-transaction.schema.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "title": "AddressTransaction", - "description": "Address transaction with STX, FT and NFT transfer summaries", - "type": "object", - "additionalProperties": false, - "required": [ - "tx", - "stx_sent", - "stx_received", - "stx_transfers", - "ft_transfers", - "nft_transfers" - ], - "properties": { - "tx": { - "$ref": "../transactions/transaction.schema.json" - }, - "stx_sent": { - "type": "string", - "description": "Total sent from the given address, including the tx fee, in micro-STX as an integer string." - }, - "stx_received": { - "type": "string", - "description": "Total received by the given address in micro-STX as an integer string." - }, - "events": { - "type": "object", - "required": ["stx", "ft", "nft"], - "properties": { - "stx": { - "type": "object", - "required": ["transfer", "mint", "burn"], - "additionalProperties": false, - "properties": { - "transfer": { - "type": "integer" - }, - "mint": { - "type": "integer" - }, - "burn": { - "type": "integer" - } - } - }, - "ft": { - "type": "object", - "required": ["transfer", "mint", "burn"], - "additionalProperties": false, - "properties": { - "transfer": { - "type": "integer" - }, - "mint": { - "type": "integer" - }, - "burn": { - "type": "integer" - } - } - }, - "nft": { - "type": "object", - "required": ["transfer", "mint", "burn"], - "additionalProperties": false, - "properties": { - "transfer": { - "type": "integer" - }, - "mint": { - "type": "integer" - }, - "burn": { - "type": "integer" - } - } - } - } - } - } -} diff --git a/docs/entities/address/token-offering-locked.schema.json b/docs/entities/address/token-offering-locked.schema.json deleted file mode 100644 index 33db1d0a4..000000000 --- a/docs/entities/address/token-offering-locked.schema.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "description": "Token Offering Locked", - "title": "AddressTokenOfferingLocked", - "type": "object", - "additionalProperties": false, - "required": [ - "total_locked", - "total_unlocked", - "unlock_schedule" - ], - "properties": { - "total_locked": { - "type": "string", - "description": "Micro-STX amount still locked at current block height." - }, - "total_unlocked": { - "type": "string", - "description": "Micro-STX amount unlocked at current block height." - }, - "unlock_schedule": { - "type": "array", - "items": { - "$ref": "./unlock-schedule.schema.json" - } - } - } -} diff --git a/docs/entities/address/transaction-with-transfers.schema.json b/docs/entities/address/transaction-with-transfers.schema.json deleted file mode 100644 index e706803a6..000000000 --- a/docs/entities/address/transaction-with-transfers.schema.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "title": "AddressTransactionWithTransfers", - "description": "Transaction with STX transfers for a given address", - "type": "object", - "additionalProperties": false, - "required": [ - "tx", - "stx_sent", - "stx_received", - "stx_transfers" - ], - "properties": { - "tx": { - "$ref": "../transactions/transaction.schema.json" - }, - "stx_sent": { - "type": "string", - "description": "Total sent from the given address, including the tx fee, in micro-STX as an integer string." - }, - "stx_received": { - "type": "string", - "description": "Total received by the given address in micro-STX as an integer string." - }, - "stx_transfers": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "required": [ - "amount" - ], - "properties": { - "amount": { - "type": "string", - "description": "Amount transferred in micro-STX as an integer string." - }, - "sender": { - "type": "string", - "description": "Principal that sent STX. This is unspecified if the STX were minted." - }, - "recipient": { - "type": "string", - "description": "Principal that received STX. This is unspecified if the STX were burned." - } - } - } - }, - "ft_transfers": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "required": [ - "amount", "asset_identifier" - ], - "properties": { - "asset_identifier": { - "type": "string", - "description": "Fungible Token asset identifier." - }, - "amount": { - "type": "string", - "description": "Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals." - }, - "sender": { - "type": "string", - "description": "Principal that sent the asset." - }, - "recipient": { - "type": "string", - "description": "Principal that received the asset." - } - } - } - }, - "nft_transfers": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "required": [ - "asset_identifier", "value" - ], - "properties": { - "asset_identifier": { - "type": "string", - "description": "Non Fungible Token asset identifier." - }, - "value": { - "type": "object", - "description": "Non Fungible Token asset value.", - "additionalProperties": false, - "required": ["hex", "repr"], - "properties": { - "hex": { - "type": "string" - }, - "repr": { - "type": "string" - } - } - }, - "sender": { - "type": "string", - "description": "Principal that sent the asset." - }, - "recipient": { - "type": "string", - "description": "Principal that received the asset." - } - } - } - } - } -} diff --git a/docs/entities/address/unlock-schedule.schema.json b/docs/entities/address/unlock-schedule.schema.json deleted file mode 100644 index d7ef946a2..000000000 --- a/docs/entities/address/unlock-schedule.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "description": "Unlock schedule amount and block height", - "title": "AddressUnlockSchedule", - "type": "object", - "additionalProperties": false, - "required": [ - "amount", - "block_height" - ], - "properties": { - "amount": { - "type": "string", - "description": "Micro-STX amount locked at this block height." - }, - "block_height": { - "type": "number" - } - } -} diff --git a/docs/entities/balance/ft-balance.schema.json b/docs/entities/balance/ft-balance.schema.json deleted file mode 100644 index 88a22928d..000000000 --- a/docs/entities/balance/ft-balance.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "title": "FtBalance", - "type": "object", - "additionalProperties": false, - "required": ["balance", "total_sent", "total_received"], - "properties": { - "balance": { - "type": "string" - }, - "total_sent": { - "type": "string" - }, - "total_received": { - "type": "string" - } - } -} diff --git a/docs/entities/balance/nft-balance.schema.json b/docs/entities/balance/nft-balance.schema.json deleted file mode 100644 index 54fc3fd58..000000000 --- a/docs/entities/balance/nft-balance.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "title": "NftBalance", - "type": "object", - "additionalProperties": false, - "required": ["count", "total_sent", "total_received"], - "properties": { - "count": { - "type": "string" - }, - "total_sent": { - "type": "string" - }, - "total_received": { - "type": "string" - } - } -} diff --git a/docs/entities/balance/stx-balance.schema.json b/docs/entities/balance/stx-balance.schema.json deleted file mode 100644 index 59982dd0d..000000000 --- a/docs/entities/balance/stx-balance.schema.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "title": "StxBalance", - "type": "object", - "additionalProperties": false, - "required": [ - "balance", - "total_sent", - "total_received", - "total_fees_sent", - "total_miner_rewards_received", - "lock_tx_id", - "locked", - "lock_height", - "burnchain_lock_height", - "burnchain_unlock_height" - ], - "properties": { - "balance": { - "type": "string" - }, - "total_sent": { - "type": "string" - }, - "total_received": { - "type": "string" - }, - "total_fees_sent": { - "type": "string" - }, - "total_miner_rewards_received": { - "type": "string" - }, - "lock_tx_id": { - "type": "string", - "description": "The transaction where the lock event occurred. Empty if no tokens are locked." - }, - "locked": { - "type": "string", - "description": "The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked." - }, - "lock_height": { - "type": "integer", - "description": "The STX chain block height of when the lock event occurred. Zero if no tokens are locked." - }, - "burnchain_lock_height": { - "type": "integer", - "description": "The burnchain block height of when the lock event occurred. Zero if no tokens are locked." - }, - "burnchain_unlock_height": { - "type": "integer", - "description": "The burnchain block height of when the tokens unlock. Zero if no tokens are locked." - } - } -} diff --git a/docs/entities/blocks/block.example.json b/docs/entities/blocks/block.example.json deleted file mode 100644 index 5a4f64f55..000000000 --- a/docs/entities/blocks/block.example.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "canonical": true, - "height": 3275, - "hash": "0xe77ba8cf6bb7c0e4f64adc83356289ed467d31a22354907b4bb814590058430f", - "block_time": 1594233639, - "block_time_iso": "2020-08-27T16:41:26.000Z", - "index_block_hash": "0x918697ef63f9d8bdf844c3312b299e72a231cde542f3173f7755bb8c1cdaf3a7", - "parent_block_hash": "0x75ab21ef25cbff2caa14c27d830ed7886a4d1522e1b6f9e5dc3b59ccf73ed49f", - "burn_block_time": 1594233639, - "burn_block_time_iso": "2020-08-27T16:41:26.000Z", - "burn_block_hash": "0xb154c008df2101023a6d0d54986b3964cee58119eed14f5bed98e15678e18fe2", - "burn_block_height": 654439, - "miner_txid": "0xd7d56070277ccd87b42acf0c91f915dd181f9db4cf878a4e95518bc397c240cc", - "parent_microblock_hash": "0x590a1bb1d7bcbeafce0a9fc8f8a69e369486192d14687fe95fbe4dc1c71d49df", - "parent_microblock_sequence": 2, - "txs": [ - "0x4262db117659d1ca9406970c8f44ffd3d8f11f8e18c591d2e3960f4070107754", - "0x383632cd3b5464dffb684082750fcfaddd1f52625bbb9f884ed8f45d2b1f0547", - "0xc99fe597e44b8bd15a50eec660c6e679a7144a5a8553d214b9d5f1406d278c22" - ], - "microblocks_accepted": [ - "0xce0b1a4099d3fc7d5885cc7a3baa952b6d999f9709d0683b98b843597208231c", - "0x4c0529b6448a5885991c5021bd869cc97f1692c128a98b382729dc962203c326", - "0x64968846291dfea1015228a9d4bbd60aac81378cd6774b810b08e59e6b0e7494" - ], - "microblocks_streamed": [ - "0xb5650ef855f7d90fc146942e85cf9fac3a8c47ec408aca02f3cf9ed7c82f6cc6", - "0xeeb9aa5741d84aa0bc5de4f2fbdeae57ae29694479475d45a67ae7bd7e2c98f3", - "0x4f4c368d5f06fdf6065c5bafd9cb37391fddc9c279cfc57be35e4bf8ee932cbd", - "0xde2fc8d99872c827f144c752c002d29f9315dfc09472a09572ac7447ae623dea" - ], - "execution_cost_read_count": 2477, - "execution_cost_read_length": 1659409, - "execution_cost_runtime": 2520952000, - "execution_cost_write_count": 608, - "execution_cost_write_length": 80170, - "microblock_tx_count": { - "0xce0b1a4099d3fc7d5885cc7a3baa952b6d999f9709d0683b98b843597208231c": 5, - "0x4c0529b6448a5885991c5021bd869cc97f1692c128a98b382729dc962203c326": 6, - "0x64968846291dfea1015228a9d4bbd60aac81378cd6774b810b08e59e6b0e7494": 9 - } -} diff --git a/docs/entities/blocks/block.schema.json b/docs/entities/blocks/block.schema.json deleted file mode 100644 index b8c9cd6a8..000000000 --- a/docs/entities/blocks/block.schema.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "title": "Block", - "description": "A block", - "type": "object", - "additionalProperties": false, - "required": [ - "canonical", - "height", - "hash", - "block_time", - "block_time_iso", - "index_block_hash", - "parent_block_hash", - "txs", - "burn_block_time", - "burn_block_time_iso", - "burn_block_hash", - "burn_block_height", - "miner_txid", - "parent_microblock_hash", - "parent_microblock_sequence", - "microblocks_accepted", - "microblocks_streamed", - "execution_cost_read_count", - "execution_cost_read_length", - "execution_cost_runtime", - "execution_cost_write_count", - "execution_cost_write_length", - "microblock_tx_count" - ], - "properties": { - "canonical": { - "type": "boolean", - "description": "Set to `true` if block corresponds to the canonical chain tip" - }, - "height": { - "type": "integer", - "description": "Height of the block" - }, - "hash": { - "type": "string", - "description": "Hash representing the block" - }, - "block_time": { - "type": "number", - "description": "Unix timestamp (in seconds) indicating when this block was mined." - }, - "block_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined." - }, - "index_block_hash": { - "type": "string", - "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie" - }, - "parent_block_hash": { - "type": "string", - "description": "Hash of the parent block" - }, - "burn_block_time": { - "type": "number", - "description": "Unix timestamp (in seconds) indicating when this block was mined." - }, - "burn_block_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined." - }, - "burn_block_hash": { - "type": "string", - "description": "Hash of the anchor chain block" - }, - "burn_block_height": { - "type": "integer", - "description": "Height of the anchor chain block" - }, - "miner_txid": { - "type": "string", - "description": "Anchor chain transaction ID" - }, - "parent_microblock_hash": { - "type": "string", - "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1." - }, - "parent_microblock_sequence": { - "type": "integer", - "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1." - }, - "txs": { - "type": "array", - "description": "List of transactions included in the block", - "items": { - "type": "string", - "description": "Transaction ID" - } - }, - "microblocks_accepted": { - "type": "array", - "description": "List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list.", - "items": { - "type": "string", - "description": "Microblock hash" - } - }, - "microblocks_streamed": { - "type": "array", - "description": "List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list.", - "items": { - "type": "string", - "description": "Microblock hash" - } - }, - "execution_cost_read_count": { - "type": "integer", - "description": "Execution cost read count." - }, - "execution_cost_read_length": { - "type": "integer", - "description": "Execution cost read length." - }, - "execution_cost_runtime": { - "type": "integer", - "description": "Execution cost runtime." - }, - "execution_cost_write_count": { - "type": "integer", - "description": "Execution cost write count." - }, - "execution_cost_write_length": { - "type": "integer", - "description": "Execution cost write length." - }, - "microblock_tx_count": { - "type": "object", - "description": "List of txs counts in each accepted microblock", - "additionalProperties": { - "type": "number" - } - } - } -} diff --git a/docs/entities/blocks/burn-block.example.json b/docs/entities/blocks/burn-block.example.json deleted file mode 100644 index db87536a0..000000000 --- a/docs/entities/blocks/burn-block.example.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "burn_block_time": 1594233639, - "burn_block_time_iso": "2020-08-27T16:41:26.000Z", - "burn_block_hash": "0xb154c008df2101023a6d0d54986b3964cee58119eed14f5bed98e15678e18fe2", - "burn_block_height": 654439, - "stacks_blocks": [ - "0x54647c277eefe60519b407f2c897749005fdb7f831034135063b2ee43fdacb04", - "0xdaf61d2b355f35c94cf019af99aeb73d8e7db7301c7cd693a464ebd1cfc2228c", - "0xb9e9b308cf9621ecbf66ca7b4689fe384b9b67c4588ec827d8163ab602fb935e", - "0x754562cba6ec243f90485e97778ab472f462fd123ef5b83cc79d8759ca8875f5" - ], - "avg_block_time": 15.3, - "total_tx_count": 728 -} diff --git a/docs/entities/blocks/burn-block.schema.json b/docs/entities/blocks/burn-block.schema.json deleted file mode 100644 index 45b4f29b9..000000000 --- a/docs/entities/blocks/burn-block.schema.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "title": "BurnBlock", - "description": "A burn block", - "type": "object", - "additionalProperties": false, - "required": [ - "burn_block_time", - "burn_block_time_iso", - "burn_block_hash", - "burn_block_height", - "stacks_blocks", - "avg_block_time", - "total_tx_count" - ], - "properties": { - "burn_block_time": { - "type": "number", - "description": "Unix timestamp (in seconds) indicating when this block was mined." - }, - "burn_block_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined." - }, - "burn_block_hash": { - "type": "string", - "description": "Hash of the anchor chain block" - }, - "burn_block_height": { - "type": "integer", - "description": "Height of the anchor chain block" - }, - "stacks_blocks": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Hashes of the Stacks blocks included in the burn block" - }, - "avg_block_time": { - "type": "number", - "description": "Average time between blocks in seconds. Returns 0 if there is only one block in the burn block." - }, - "total_tx_count": { - "type": "integer", - "description": "Total number of transactions in the Stacks blocks associated with this burn block" - } - } -} diff --git a/docs/entities/blocks/nakamoto-block.example.json b/docs/entities/blocks/nakamoto-block.example.json deleted file mode 100644 index 16e752200..000000000 --- a/docs/entities/blocks/nakamoto-block.example.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "canonical": true, - "height": 3275, - "hash": "0xe77ba8cf6bb7c0e4f64adc83356289ed467d31a22354907b4bb814590058430f", - "block_time": 1594233639, - "block_time_iso": "2020-08-27T16:41:26.000Z", - "index_block_hash": "0x918697ef63f9d8bdf844c3312b299e72a231cde542f3173f7755bb8c1cdaf3a7", - "parent_block_hash": "0x75ab21ef25cbff2caa14c27d830ed7886a4d1522e1b6f9e5dc3b59ccf73ed49f", - "parent_index_block_hash": "0x4262db117659d1ca9406970c8f44ffd3d8f11f8e18c591d2e3960f4070107756", - "burn_block_time": 1594233639, - "burn_block_time_iso": "2020-08-27T16:41:26.000Z", - "burn_block_hash": "0xb154c008df2101023a6d0d54986b3964cee58119eed14f5bed98e15678e18fe2", - "burn_block_height": 654439, - "miner_txid": "0xd7d56070277ccd87b42acf0c91f915dd181f9db4cf878a4e95518bc397c240cc", - "tx_count": 3, - "execution_cost_read_count": 2477, - "execution_cost_read_length": 1659409, - "execution_cost_runtime": 2520952000, - "execution_cost_write_count": 608, - "execution_cost_write_length": 80170 -} diff --git a/docs/entities/blocks/nakamoto-block.schema.json b/docs/entities/blocks/nakamoto-block.schema.json deleted file mode 100644 index 353675dcf..000000000 --- a/docs/entities/blocks/nakamoto-block.schema.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "title": "NakamotoBlock", - "description": "A block", - "type": "object", - "additionalProperties": false, - "required": [ - "canonical", - "height", - "hash", - "block_time", - "block_time_iso", - "index_block_hash", - "parent_block_hash", - "parent_index_block_hash", - "txs", - "tx_count", - "burn_block_time", - "burn_block_time_iso", - "burn_block_hash", - "burn_block_height", - "miner_txid", - "execution_cost_read_count", - "execution_cost_read_length", - "execution_cost_runtime", - "execution_cost_write_count", - "execution_cost_write_length" - ], - "properties": { - "canonical": { - "type": "boolean", - "description": "Set to `true` if block corresponds to the canonical chain tip" - }, - "height": { - "type": "integer", - "description": "Height of the block" - }, - "hash": { - "type": "string", - "description": "Hash representing the block" - }, - "block_time": { - "type": "number", - "description": "Unix timestamp (in seconds) indicating when this block was mined." - }, - "block_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined." - }, - "index_block_hash": { - "type": "string", - "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie" - }, - "parent_block_hash": { - "type": "string", - "description": "Hash of the parent block" - }, - "parent_index_block_hash": { - "type": "string", - "description": "Index block hash of the parent block" - }, - "burn_block_time": { - "type": "number", - "description": "Unix timestamp (in seconds) indicating when this block was mined." - }, - "burn_block_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined." - }, - "burn_block_hash": { - "type": "string", - "description": "Hash of the anchor chain block" - }, - "burn_block_height": { - "type": "integer", - "description": "Height of the anchor chain block" - }, - "miner_txid": { - "type": "string", - "description": "Anchor chain transaction ID" - }, - "tx_count": { - "type": "integer", - "description": "Number of transactions included in the block" - }, - "execution_cost_read_count": { - "type": "integer", - "description": "Execution cost read count." - }, - "execution_cost_read_length": { - "type": "integer", - "description": "Execution cost read length." - }, - "execution_cost_runtime": { - "type": "integer", - "description": "Execution cost runtime." - }, - "execution_cost_write_count": { - "type": "integer", - "description": "Execution cost write count." - }, - "execution_cost_write_length": { - "type": "integer", - "description": "Execution cost write length." - } - } -} diff --git a/docs/entities/burnchain/reward-slot-holder.example.json b/docs/entities/burnchain/reward-slot-holder.example.json deleted file mode 100644 index 5a51f25cd..000000000 --- a/docs/entities/burnchain/reward-slot-holder.example.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "canonical": true, - "burn_block_hash": "0x4eaabcd105865e471f697eff5dd5bd85d47ecb5a26a3379d74fae0ae87c40904", - "burn_block_height": 331, - "address": "1C56LYirKa3PFXFsvhSESgDy2acEHVAEt6", - "slot_index": 0 -} diff --git a/docs/entities/burnchain/reward-slot-holder.schema.json b/docs/entities/burnchain/reward-slot-holder.schema.json deleted file mode 100644 index 4803a0a09..000000000 --- a/docs/entities/burnchain/reward-slot-holder.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "title": "BurnchainRewardSlotHolder", - "description": "Reward slot holder on the burnchain", - "type": "object", - "additionalProperties": false, - "required": ["canonical", "burn_block_hash", "burn_block_height", "address", "slot_index"], - "properties": { - "canonical": { - "type": "boolean", - "description": "Set to `true` if block corresponds to the canonical burchchain tip" - }, - "burn_block_hash": { - "type": "string", - "description": "The hash representing the burnchain block" - }, - "burn_block_height": { - "type": "integer", - "description": "Height of the burnchain block" - }, - "address": { - "type": "string", - "description": "The recipient address that validly received PoX commitments, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)" - }, - "slot_index": { - "type": "integer", - "description": "The index position of the reward entry, useful for ordering when there's more than one slot per burnchain block" - } - } -} diff --git a/docs/entities/burnchain/reward.example.json b/docs/entities/burnchain/reward.example.json deleted file mode 100644 index ba27dfcf9..000000000 --- a/docs/entities/burnchain/reward.example.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "canonical": true, - "burn_block_hash": "0x4eaabcd105865e471f697eff5dd5bd85d47ecb5a26a3379d74fae0ae87c40904", - "burn_block_height": 331, - "burn_amount": "12000", - "reward_recipient": "1C56LYirKa3PFXFsvhSESgDy2acEHVAEt6", - "reward_amount": "5000", - "reward_index": 0 -} diff --git a/docs/entities/burnchain/reward.schema.json b/docs/entities/burnchain/reward.schema.json deleted file mode 100644 index e05563d95..000000000 --- a/docs/entities/burnchain/reward.schema.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "title": "BurnchainReward", - "description": "Reward payment made on the burnchain", - "additionalProperties": false, - "type": "object", - "required": ["canonical", "burn_block_hash", "burn_block_height", "burn_amount", "reward_recipient", "reward_amount", "reward_index"], - "properties": { - "canonical": { - "type": "boolean", - "description": "Set to `true` if block corresponds to the canonical burchchain tip" - }, - "burn_block_hash": { - "type": "string", - "description": "The hash representing the burnchain block" - }, - "burn_block_height": { - "type": "integer", - "description": "Height of the burnchain block" - }, - "burn_amount": { - "type": "string", - "description": "The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin)" - }, - "reward_recipient": { - "type": "string", - "description": "The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)" - }, - "reward_amount": { - "type": "string", - "description": "The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin)" - }, - "reward_index": { - "type": "integer", - "description": "The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block" - } - } -} diff --git a/docs/entities/burnchain/rewards-total.example.json b/docs/entities/burnchain/rewards-total.example.json deleted file mode 100644 index bb5da954e..000000000 --- a/docs/entities/burnchain/rewards-total.example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "reward_recipient": "1C56LYirKa3PFXFsvhSESgDy2acEHVAEt6", - "reward_amount": "18000" -} diff --git a/docs/entities/burnchain/rewards-total.schema.json b/docs/entities/burnchain/rewards-total.schema.json deleted file mode 100644 index 38369ca7f..000000000 --- a/docs/entities/burnchain/rewards-total.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "title": "BurnchainRewardsTotal", - "description": "Total burnchain rewards made to a recipient", - "type": "object", - "additionalProperties": false, - "required": ["reward_recipient", "reward_amount"], - "properties": { - "reward_recipient": { - "type": "string", - "description": "The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)" - }, - "reward_amount": { - "type": "string", - "description": "The total amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin)" - } - } -} diff --git a/docs/entities/contracts/get-specific-data-map-inside-contract.example.json b/docs/entities/contracts/get-specific-data-map-inside-contract.example.json deleted file mode 100644 index 8e470ae68..000000000 --- a/docs/entities/contracts/get-specific-data-map-inside-contract.example.json +++ /dev/null @@ -1 +0,0 @@ -"0x0100000000000000000000000000000095" diff --git a/docs/entities/contracts/read-only-function-args-request-body.example.json b/docs/entities/contracts/read-only-function-args-request-body.example.json deleted file mode 100644 index 80ac10ff8..000000000 --- a/docs/entities/contracts/read-only-function-args-request-body.example.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "sender": "STM9EQRAB3QAKF8NKTP15WJT7VHH4EWG3DJB4W29", - "arguments": [ - "0x0100000000000000000000000000000095" - ] -} diff --git a/docs/entities/contracts/read-only-function-args.schema.json b/docs/entities/contracts/read-only-function-args.schema.json deleted file mode 100644 index f91c0e253..000000000 --- a/docs/entities/contracts/read-only-function-args.schema.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "title": "ReadOnlyFunctionArgs", - "description": "Describes representation of a Type-0 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-0-transferring-an-asset", - "type": "object", - "additionalProperties": false, - "required": ["sender", "arguments"], - "properties": { - "sender": { - "type": "string", - "description": "The simulated tx-sender" - }, - "arguments": { - "type": "array", - "description": "An array of hex serialized Clarity values", - "items": { - "type": "string" - } - } - } -} diff --git a/docs/entities/contracts/smart-contract.example.json b/docs/entities/contracts/smart-contract.example.json deleted file mode 100644 index 2047ea31f..000000000 --- a/docs/entities/contracts/smart-contract.example.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "tx_id": "0xb8b822f30a063fda8f9d44a23530a562a1ed93867d5977fbb12b1c284736edbb", - "canonical": true, - "contract_id": "SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.btc-ft-swap", - "block_height": 23131, - "source_code": "(use-trait fungible-token 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.sip-010-trait) (define-constant expiry u100) (define-map swaps uint {sats: uint, btc-receiver: (buff 40), amount: uint, ft-receiver: (optional principal), ft-sender: principal, when: uint, done: uint, ft: principal}) (define-data-var next-id uint u0) (define-private (find-out (entry {scriptPubKey: (buff 128), value: (buff 8)}) (result {pubscriptkey: (buff 40), out: (optional {scriptPubKey: (buff 128), value: uint})})) (if (is-eq (get scriptPubKey entry) (get pubscriptkey result)) (merge result {out: (some {scriptPubKey: (get scriptPubKey entry), value: (get uint32 (unwrap-panic (contract-call? 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.clarity-bitcoin-lib-v1 read-uint32 {txbuff: (get value entry), index: u0})))})}) result)) (define-public (get-out-value (tx { version: (buff 4), ins: (list 8 {outpoint: {hash: (buff 32), index: (buff 4)}, scriptSig: (buff 256), sequence: (buff 4)}), outs: (list 8 {value: (buff 8), scriptPubKey: (buff 128)}), locktime: (buff 4)}) (pubscriptkey (buff 40))) (ok (fold find-out (get outs tx) {pubscriptkey: pubscriptkey, out: none}))) ;; create a swap between btc and fungible token (define-public (create-swap (sats uint) (btc-receiver (buff 40)) (amount uint) (ft-receiver (optional principal)) (ft )) (let ((id (var-get next-id))) (asserts! (map-insert swaps id {sats: sats, btc-receiver: btc-receiver, amount: amount, ft-receiver: ft-receiver, ft-sender: tx-sender, when: block-height, done: u0, ft: (contract-of ft)}) ERR_INVALID_ID) (var-set next-id (+ id u1)) (match (contract-call? ft transfer amount tx-sender (as-contract tx-sender) (some 0x636174616d6172616e2073776170)) success (ok id) error (err (* error u1000))))) (define-public (set-ft-receiver (id uint)) (let ((swap (unwrap! (map-get? swaps id) ERR_INVALID_ID))) (if (is-none (get ft-receiver swap)) (begin (asserts! (map-set swaps id (merge swap {ft-receiver: (some tx-sender)})) ERR_NATIVE_FAILURE) (ok true)) ERR_ALREADY_DONE))) ;; any user can cancle the swap after the expiry period (define-public (cancel (id uint) (ft )) (let ((swap (unwrap! (map-get? swaps id) ERR_INVALID_ID))) (asserts! (is-eq (contract-of ft) (get ft swap)) ERR_INVALID_FUNGIBLE_TOKEN) (asserts! (< (+ (get when swap) expiry) block-height) ERR_TOO_EARLY) (asserts! (is-eq (get done swap) u0) ERR_ALREADY_DONE) (asserts! (map-set swaps id (merge swap {done: u1})) ERR_NATIVE_FAILURE) (as-contract (contract-call? ft transfer (get amount swap) tx-sender (get ft-sender swap) (some 0x72657665727420636174616d6172616e2073776170))))) ;; any user can submit a tx that contains the swap (define-public (submit-swap (id uint) (block { version: (buff 4), parent: (buff 32), merkle-root: (buff 32), timestamp: (buff 4), nbits: (buff 4), nonce: (buff 4), height: uint }) (tx {version: (buff 4), ins: (list 8 {outpoint: {hash: (buff 32), index: (buff 4)}, scriptSig: (buff 256), sequence: (buff 4)}), outs: (list 8 {value: (buff 8), scriptPubKey: (buff 128)}), locktime: (buff 4)}) (proof { tx-index: uint, hashes: (list 12 (buff 32)), tree-depth: uint }) (ft )) (let ((swap (unwrap! (map-get? swaps id) ERR_INVALID_ID)) (tx-buff (contract-call? 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.clarity-bitcoin-lib-v1 concat-tx tx))) (match (contract-call? 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.clarity-bitcoin-lib-v1 was-tx-mined block tx-buff proof) result (begin (asserts! result ERR_VERIFICATION_FAILED) (asserts! (is-eq (get done swap) u0) ERR_ALREADY_DONE) (match (get out (unwrap! (get-out-value tx (get btc-receiver swap)) ERR_NATIVE_FAILURE)) out (if (>= (get value out) (get sats swap)) (begin (asserts! (is-eq (contract-of ft) (get ft swap)) ERR_INVALID_FUNGIBLE_TOKEN) (asserts! (map-set swaps id (merge swap {done: u1})) ERR_NATIVE_FAILURE) (as-contract (contract-call? ft transfer (get amount swap) tx-sender (unwrap! (get ft-receiver swap) ERR_NO_FT_RECEIVER) (some 0x636174616d6172616e2073776170)))) ERR_TX_VALUE_TOO_SMALL) ERR_TX_NOT_FOR_RECEIVER)) error (err (* error u1000))))) (define-constant ERR_VERIFICATION_FAILED (err u1)) (define-constant ERR_FAILED_TO_PARSE_TX (err u2)) (define-constant ERR_INVALID_ID (err u3)) (define-constant ERR_TOO_EARLY (err u4)) (define-constant ERR_TX_VALUE_TOO_SMALL (err u5)) (define-constant ERR_TX_NOT_FOR_RECEIVER (err u6)) (define-constant ERR_ALREADY_DONE (err u7)) (define-constant ERR_INVALID_FUNGIBLE_TOKEN (err u8)) (define-constant ERR_NO_FT_RECEIVER (err u9)) (define-constant ERR_NATIVE_FAILURE (err u99)) ", - "abi": "{\"maps\":[{\"key\":\"uint128\",\"name\":\"swaps\",\"value\":{\"tuple\":[{\"name\":\"amount\",\"type\":\"uint128\"},{\"name\":\"btc-receiver\",\"type\":{\"buffer\":{\"length\":40}}},{\"name\":\"done\",\"type\":\"uint128\"},{\"name\":\"ft\",\"type\":\"principal\"},{\"name\":\"ft-receiver\",\"type\":{\"optional\":\"principal\"}},{\"name\":\"ft-sender\",\"type\":\"principal\"},{\"name\":\"sats\",\"type\":\"uint128\"},{\"name\":\"when\",\"type\":\"uint128\"}]}}],\"functions\":[{\"args\":[{\"name\":\"entry\",\"type\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":{\"buffer\":{\"length\":8}}}]}},{\"name\":\"result\",\"type\":{\"tuple\":[{\"name\":\"out\",\"type\":{\"optional\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":\"uint128\"}]}}},{\"name\":\"pubscriptkey\",\"type\":{\"buffer\":{\"length\":40}}}]}}],\"name\":\"find-out\",\"access\":\"private\",\"outputs\":{\"type\":{\"tuple\":[{\"name\":\"out\",\"type\":{\"optional\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":\"uint128\"}]}}},{\"name\":\"pubscriptkey\",\"type\":{\"buffer\":{\"length\":40}}}]}}},{\"args\":[{\"name\":\"id\",\"type\":\"uint128\"},{\"name\":\"ft\",\"type\":\"trait_reference\"}],\"name\":\"cancel\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":\"bool\",\"error\":\"uint128\"}}}},{\"args\":[{\"name\":\"sats\",\"type\":\"uint128\"},{\"name\":\"btc-receiver\",\"type\":{\"buffer\":{\"length\":40}}},{\"name\":\"amount\",\"type\":\"uint128\"},{\"name\":\"ft-receiver\",\"type\":{\"optional\":\"principal\"}},{\"name\":\"ft\",\"type\":\"trait_reference\"}],\"name\":\"create-swap\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":\"uint128\",\"error\":\"uint128\"}}}},{\"args\":[{\"name\":\"tx\",\"type\":{\"tuple\":[{\"name\":\"ins\",\"type\":{\"list\":{\"type\":{\"tuple\":[{\"name\":\"outpoint\",\"type\":{\"tuple\":[{\"name\":\"hash\",\"type\":{\"buffer\":{\"length\":32}}},{\"name\":\"index\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"scriptSig\",\"type\":{\"buffer\":{\"length\":256}}},{\"name\":\"sequence\",\"type\":{\"buffer\":{\"length\":4}}}]},\"length\":8}}},{\"name\":\"locktime\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"outs\",\"type\":{\"list\":{\"type\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":{\"buffer\":{\"length\":8}}}]},\"length\":8}}},{\"name\":\"version\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"pubscriptkey\",\"type\":{\"buffer\":{\"length\":40}}}],\"name\":\"get-out-value\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":{\"tuple\":[{\"name\":\"out\",\"type\":{\"optional\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":\"uint128\"}]}}},{\"name\":\"pubscriptkey\",\"type\":{\"buffer\":{\"length\":40}}}]},\"error\":\"none\"}}}},{\"args\":[{\"name\":\"id\",\"type\":\"uint128\"}],\"name\":\"set-ft-receiver\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":\"bool\",\"error\":\"uint128\"}}}},{\"args\":[{\"name\":\"id\",\"type\":\"uint128\"},{\"name\":\"block\",\"type\":{\"tuple\":[{\"name\":\"height\",\"type\":\"uint128\"},{\"name\":\"merkle-root\",\"type\":{\"buffer\":{\"length\":32}}},{\"name\":\"nbits\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"nonce\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"parent\",\"type\":{\"buffer\":{\"length\":32}}},{\"name\":\"timestamp\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"version\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"tx\",\"type\":{\"tuple\":[{\"name\":\"ins\",\"type\":{\"list\":{\"type\":{\"tuple\":[{\"name\":\"outpoint\",\"type\":{\"tuple\":[{\"name\":\"hash\",\"type\":{\"buffer\":{\"length\":32}}},{\"name\":\"index\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"scriptSig\",\"type\":{\"buffer\":{\"length\":256}}},{\"name\":\"sequence\",\"type\":{\"buffer\":{\"length\":4}}}]},\"length\":8}}},{\"name\":\"locktime\",\"type\":{\"buffer\":{\"length\":4}}},{\"name\":\"outs\",\"type\":{\"list\":{\"type\":{\"tuple\":[{\"name\":\"scriptPubKey\",\"type\":{\"buffer\":{\"length\":128}}},{\"name\":\"value\",\"type\":{\"buffer\":{\"length\":8}}}]},\"length\":8}}},{\"name\":\"version\",\"type\":{\"buffer\":{\"length\":4}}}]}},{\"name\":\"proof\",\"type\":{\"tuple\":[{\"name\":\"hashes\",\"type\":{\"list\":{\"type\":{\"buffer\":{\"length\":32}},\"length\":12}}},{\"name\":\"tree-depth\",\"type\":\"uint128\"},{\"name\":\"tx-index\",\"type\":\"uint128\"}]}},{\"name\":\"ft\",\"type\":\"trait_reference\"}],\"name\":\"submit-swap\",\"access\":\"public\",\"outputs\":{\"type\":{\"response\":{\"ok\":\"bool\",\"error\":\"uint128\"}}}}],\"variables\":[{\"name\":\"ERR_ALREADY_DONE\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_FAILED_TO_PARSE_TX\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_INVALID_FUNGIBLE_TOKEN\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_INVALID_ID\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_NATIVE_FAILURE\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_NO_FT_RECEIVER\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_TOO_EARLY\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_TX_NOT_FOR_RECEIVER\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_TX_VALUE_TOO_SMALL\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"ERR_VERIFICATION_FAILED\",\"type\":{\"response\":{\"ok\":\"none\",\"error\":\"uint128\"}},\"access\":\"constant\"},{\"name\":\"expiry\",\"type\":\"uint128\",\"access\":\"constant\"},{\"name\":\"next-id\",\"type\":\"uint128\",\"access\":\"variable\"}],\"fungible_tokens\":[],\"non_fungible_tokens\":[]}" -} diff --git a/docs/entities/contracts/smart-contract.schema.json b/docs/entities/contracts/smart-contract.schema.json deleted file mode 100644 index 0c886e896..000000000 --- a/docs/entities/contracts/smart-contract.schema.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "object", - "title": "SmartContract", - "description": "A Smart Contract Detail", - "required": ["tx_id", "canonical", "block_height", "source_code", "contract_id", "abi"], - "properties": { - "tx_id": { - "type": "string" - }, - "canonical": { - "type": "boolean" - }, - "contract_id": { - "type": "string" - }, - "block_height": { - "type": "integer" - }, - "source_code": { - "type": "string" - }, - "abi": { - "type": "string" - } - }, - "additionalProperties": false -} diff --git a/docs/entities/info/block-time.example.json b/docs/entities/info/block-time.example.json deleted file mode 100644 index d4a0b00c4..000000000 --- a/docs/entities/info/block-time.example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "target_block_time": 600 -} diff --git a/docs/entities/info/block-time.schema.json b/docs/entities/info/block-time.schema.json deleted file mode 100644 index e3d3a3d41..000000000 --- a/docs/entities/info/block-time.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "TargetBlockTime", - "type": "object", - "additionalProperties": false, - "required": [ - "target_block_time" - ], - "properties": { - "target_block_time": { - "type": "integer" - } - } -} diff --git a/docs/entities/info/chain-tip.example.json b/docs/entities/info/chain-tip.example.json deleted file mode 100644 index d739a8e75..000000000 --- a/docs/entities/info/chain-tip.example.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "block_height": 48902, - "block_hash": "0xa5a2923c405f8356925213bb8c479beb06d3b68ca66dd2b7397b54f8c08c5eac", - "index_block_hash": "0xf46401bf3cb6a6b6181536b7de414a1fd9e004a6ece99a05de72a781b17f9819", - "microblock_hash": "0xec89a572d3583b959e490bc45e0f521b775ed51d7ed13087b6df8eb82cbe75d3", - "microblock_sequence": 0 -} diff --git a/docs/entities/info/chain-tip.schema.json b/docs/entities/info/chain-tip.schema.json deleted file mode 100644 index 52bad113f..000000000 --- a/docs/entities/info/chain-tip.schema.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "title": "ChainTip", - "description": "Current chain tip information", - "type": "object", - "additionalProperties": false, - "required": [ - "block_height", - "block_hash", - "index_block_hash", - "burn_block_height" - ], - "properties": { - "block_height": { - "type": "integer", - "description": "the current block height" - }, - "block_hash": { - "type": "string", - "description": "the current block hash" - }, - "index_block_hash": { - "type": "string", - "description": "the current index block hash" - }, - "microblock_hash": { - "type": "string", - "description": "the current microblock hash" - }, - "microblock_sequence": { - "type": "integer", - "description": "the current microblock sequence number" - }, - "burn_block_height": { - "type": "integer", - "description": "the current burn chain block height" - } - } -} diff --git a/docs/entities/mempool-transactions/abstract-transaction.schema.json b/docs/entities/mempool-transactions/abstract-transaction.schema.json deleted file mode 100644 index 18db6ddec..000000000 --- a/docs/entities/mempool-transactions/abstract-transaction.schema.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "title": "AbstractMempoolTransaction", - "description": "Abstract transaction. This schema makes up all properties common between all Stacks 2.0 transaction types", - "type": "object", - "allOf": [ - { - "$ref": "../transactions/base-transaction.schema.json" - }, - { - "required": [ - "tx_status", - "receipt_time", - "receipt_time_iso" - ], - "additionalProperties": false, - "properties": { - "tx_status": { - "$ref": "./transaction-status.schema.json" - }, - "receipt_time": { - "type": "number", - "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node." - }, - "receipt_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node." - } - } - } - ] -} diff --git a/docs/entities/mempool-transactions/transaction-0-token-transfer.schema.json b/docs/entities/mempool-transactions/transaction-0-token-transfer.schema.json deleted file mode 100644 index c0e12f90d..000000000 --- a/docs/entities/mempool-transactions/transaction-0-token-transfer.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "MempoolTokenTransferTransaction", - "description": "Describes representation of a Type-0 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-0-transferring-an-asset", - "type": "object", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "../transactions/transaction-0-token-transfer-metadata.schema.json" - } - ] -} diff --git a/docs/entities/mempool-transactions/transaction-1-smart-contract.schema.json b/docs/entities/mempool-transactions/transaction-1-smart-contract.schema.json deleted file mode 100644 index b7eb76778..000000000 --- a/docs/entities/mempool-transactions/transaction-1-smart-contract.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "MempoolSmartContractTransaction", - "description": "Describes representation of a Type-1 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-1-instantiating-a-smart-contract", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "../transactions/transaction-1-smart-contract-metadata.schema.json" - } - ] -} diff --git a/docs/entities/mempool-transactions/transaction-2-contract-call.schema.json b/docs/entities/mempool-transactions/transaction-2-contract-call.schema.json deleted file mode 100644 index 26f59bf1a..000000000 --- a/docs/entities/mempool-transactions/transaction-2-contract-call.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "MempoolContractCallTransaction", - "description": "Describes representation of a Type 2 Stacks 2.0 transaction: Contract Call", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "../transactions/transaction-2-contract-call-metadata.schema.json" - } - ] -} diff --git a/docs/entities/mempool-transactions/transaction-3-poison-microblock.schema.json b/docs/entities/mempool-transactions/transaction-3-poison-microblock.schema.json deleted file mode 100644 index ddfdec83f..000000000 --- a/docs/entities/mempool-transactions/transaction-3-poison-microblock.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "MempoolPoisonMicroblockTransaction", - "description": "Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "../transactions/transaction-3-poison-microblock-metadata.schema.json" - } - ] -} diff --git a/docs/entities/mempool-transactions/transaction-4-coinbase.schema.json b/docs/entities/mempool-transactions/transaction-4-coinbase.schema.json deleted file mode 100644 index 813fda932..000000000 --- a/docs/entities/mempool-transactions/transaction-4-coinbase.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "MempoolCoinbaseTransaction", - "description": "Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "../transactions/transaction-4-coinbase-metadata.schema.json" - } - ] -} diff --git a/docs/entities/mempool-transactions/transaction-7-tenure-change.schema.json b/docs/entities/mempool-transactions/transaction-7-tenure-change.schema.json deleted file mode 100644 index 2ed384aaf..000000000 --- a/docs/entities/mempool-transactions/transaction-7-tenure-change.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "MempoolTenureChangeTransaction", - "description": "Describes representation of a Type 7 Stacks transaction: Tenure Change", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "../transactions/transaction-7-tenure-change-metadata.schema.json" - } - ] -} diff --git a/docs/entities/mempool-transactions/transaction-status.schema.json b/docs/entities/mempool-transactions/transaction-status.schema.json deleted file mode 100644 index e19bfed18..000000000 --- a/docs/entities/mempool-transactions/transaction-status.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "MempoolTransactionStatus", - "description": "Status of the transaction", - "type": "string", - "enum": ["pending", "dropped_replace_by_fee", "dropped_replace_across_fork", "dropped_too_expensive", "dropped_stale_garbage_collect", "dropped_problematic"] -} diff --git a/docs/entities/mempool-transactions/transaction.schema.json b/docs/entities/mempool-transactions/transaction.schema.json deleted file mode 100644 index ec8606882..000000000 --- a/docs/entities/mempool-transactions/transaction.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "object", - "title": "MempoolTransaction", - "description": "Describes all transaction types on Stacks 2.0 blockchain", - "anyOf": [ - { - "$ref": "./transaction-0-token-transfer.schema.json" - }, - { - "$ref": "./transaction-1-smart-contract.schema.json" - }, - { - "$ref": "./transaction-2-contract-call.schema.json" - }, - { - "$ref": "./transaction-3-poison-microblock.schema.json" - }, - { - "$ref": "./transaction-4-coinbase.schema.json" - }, - { - "$ref": "./transaction-7-tenure-change.schema.json" - } - ] -} diff --git a/docs/entities/microblocks/microblock.example.json b/docs/entities/microblocks/microblock.example.json deleted file mode 100644 index 2d15fd522..000000000 --- a/docs/entities/microblocks/microblock.example.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "canonical": true, - "microblock_canonical": true, - "microblock_hash": "0xa31ee2244ceee0d042c0b129a91df2433c4ffd3b94e7e4e5dfa3a15927684a6f", - "microblock_sequence": 0, - "microblock_parent_hash": "0x5d053c206a7bcc5dcfe8bb8a61d8699fc068179f388eb2aec62786b7318c36c4", - "block_height": 38224, - "parent_block_height": 38223, - "parent_block_hash": "0x5d053c206a7bcc5dcfe8bb8a61d8699fc068179f388eb2aec62786b7318c36c4", - "block_hash": "", - "txs": [ - "0xe4b46358b7864c9db31e15e7db4f74042a2e1748db920b93480ed56463ac1c48", - "0x1de11ca776fc4a713465bc5974790cd3cdab7d8ad89fa474c10a4160cf89efdc", - "0x16b3a99d6d100562964f6f0f0ae02d47121386495c4fd903e4e9f72548ae0b35", - "0xc99f802dfffee9190e4b8ee5c128295f4eec51974d7cabdec0ba49c35b17bca5", - "0xeffa0b1d1e5b96dc1de1ff49b390752f35cbe49eddf5a6c7ff1ee80ea2b73886", - "0x93f927bdf15056f65ff3b0c6041287c9cfd070e4bddadedeb1aa1627d837022a", - "0xdbd62060daf483a7fdac2d76c3a88091690ff1f26827e2627c0894e5f73dcf0a", - "0x0d89a6edb51f96eec1dfbbaf1abc66861c96c75a6962545c0783d78773563a4b" - ], - "parent_burn_block_height": 710158, - "parent_burn_block_hash": "0x00000000000000000007b6fa2dcd91e0c69d488f9742d7e5261286aefce29ee0", - "parent_burn_block_time": 1637167098, - "parent_burn_block_time_iso": "2021-11-17T16:38:18.000Z" -} diff --git a/docs/entities/microblocks/microblock.schema.json b/docs/entities/microblocks/microblock.schema.json deleted file mode 100644 index 14f678fc1..000000000 --- a/docs/entities/microblocks/microblock.schema.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "title": "Microblock", - "description": "A microblock", - "type": "object", - "required": [ - "canonical", - "microblock_canonical", - "microblock_hash", - "microblock_sequence", - "microblock_parent_hash", - "block_height", - "parent_block_height", - "parent_block_hash", - "block_hash", - "txs", - "parent_burn_block_time", - "parent_burn_block_time_iso", - "parent_burn_block_hash", - "parent_burn_block_height" - ], - "additionalProperties": false, - "properties": { - "canonical": { - "type": "boolean", - "description": "Set to `true` if the microblock corresponds to the canonical chain tip." - }, - "microblock_canonical": { - "type": "boolean", - "description": "Set to `true` if the microblock was not orphaned in a following anchor block. Defaults to `true` if the following anchor block has not yet been created." - }, - "microblock_hash": { - "type": "string", - "description": "The SHA512/256 hash of this microblock." - }, - "microblock_sequence": { - "type": "integer", - "description": "A hint to describe how to order a set of microblocks. Starts at 0." - }, - "microblock_parent_hash": { - "type": "string", - "description": "The SHA512/256 hash of the previous signed microblock in this stream." - }, - "block_height": { - "type": "integer", - "description": "The anchor block height that confirmed this microblock." - }, - "parent_block_height": { - "type": "integer", - "description": "The height of the anchor block that preceded this microblock." - }, - "parent_block_hash": { - "type": "string", - "description": "The hash of the anchor block that preceded this microblock." - }, - "parent_burn_block_hash": { - "type": "string", - "description": "The hash of the Bitcoin block that preceded this microblock." - }, - "parent_burn_block_time": { - "type": "integer", - "description": "The block timestamp of the Bitcoin block that preceded this microblock." - }, - "parent_burn_block_time_iso": { - "type": "string", - "description": "The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the bitcoin block that preceded this microblock." - }, - "parent_burn_block_height": { - "type": "integer", - "description": "The height of the Bitcoin block that preceded this microblock." - }, - "block_hash": { - "type": "string", - "description": "The hash of the anchor block that confirmed this microblock. This wil be empty for unanchored microblocks", - "nullable": true - }, - "txs": { - "type": "array", - "description": "List of transactions included in the microblock", - "items": { - "type": "string", - "description": "Transaction ID" - } - } - } -} diff --git a/docs/entities/nft-events/nft-event.example.json b/docs/entities/nft-events/nft-event.example.json deleted file mode 100644 index 26232ffea..000000000 --- a/docs/entities/nft-events/nft-event.example.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "sender": "none", - "recipient": "ST1HB64MAJ1MBV4CQ80GF01DZS4T1DSMX20ADCRA4", - "asset_identifier": "some-asset", - "value": "0x00", - "tx_id": "0x29e25515652dad41ef675bd0670964e3d537b80ec19cf6ca6f1dd65d5bc642c5", - "block_height": "12345", - "value_repr": "0" -} diff --git a/docs/entities/nft-events/nft-event.schema.json b/docs/entities/nft-events/nft-event.schema.json deleted file mode 100644 index c376557f4..000000000 --- a/docs/entities/nft-events/nft-event.schema.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "type": "object", - "title": "NftEvent", - "additionalProperties": false, - "required": [ - "asset_identifier", - "value", - "tx_id", - "tx_index", - "event_index", - "block_height", - "asset_event_type" - ], - "properties": { - "sender": { - "type": "string" - }, - "recipient": { - "type": "string" - }, - "asset_identifier": { - "type": "string" - }, - "asset_event_type": { - "type": "string" - }, - "value": { - "type": "object", - "required": ["hex", "repr"], - "description": "Identifier of the NFT", - "additionalProperties": false, - "properties": { - "hex": { - "type": "string", - "description": "Hex string representing the identifier of the NFT" - }, - "repr": { - "type": "string", - "description": "Readable string of the NFT identifier" - } - } - }, - "tx_id": { - "type": "string" - }, - "tx_index": { - "type": "number" - }, - "block_height": { - "type": "number" - }, - "event_index": { - "type": "number" - } - } -} diff --git a/docs/entities/post-conditions/post-condition-0-stx.schema.json b/docs/entities/post-conditions/post-condition-0-stx.schema.json deleted file mode 100644 index c9a47adbd..000000000 --- a/docs/entities/post-conditions/post-condition-0-stx.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "title": "PostConditionStx", - "type": "object", - "allOf": [ - { - "type": "object", - "required": ["principal"], - "additionalProperties": false, - "properties": { - "principal": { - "$ref": "./post-condition-principal.schema.json" - } - } - }, - { - "type": "object", - "required": ["condition_code", "amount", "type"], - "additionalProperties": false, - "properties": { - "condition_code": { - "$ref": "./post-condition-fungible-condition-code.schema.json" - }, - "amount": { - "type": "string" - }, - "type": { - "enum": ["stx"], - "type": "string" - } - } - } - ] -} diff --git a/docs/entities/post-conditions/post-condition-1-fungible.schema.json b/docs/entities/post-conditions/post-condition-1-fungible.schema.json deleted file mode 100644 index f701ab644..000000000 --- a/docs/entities/post-conditions/post-condition-1-fungible.schema.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "title": "PostConditionFungible", - "type": "object", - "allOf": [ - { - "type": "object", - "required": ["principal"], - "additionalProperties": false, - "properties": { - "principal": { - "$ref": "./post-condition-principal.schema.json" - } - } - }, - { - "type": "object", - "required": ["condition_code", "amount", "type", "asset"], - "additionalProperties": false, - "properties": { - "condition_code": { - "$ref": "./post-condition-fungible-condition-code.schema.json" - }, - "type": { - "enum": ["fungible"], - "type": "string" - }, - "amount": { - "type": "string" - }, - "asset": { - "type": "object", - "required": ["asset_name", "contract_address", "contract_name"], - "additionalProperties": false, - "properties": { - "asset_name": { - "type": "string" - }, - "contract_address": { - "type": "string" - }, - "contract_name": { - "type": "string" - } - } - } - } - } - ] -} diff --git a/docs/entities/post-conditions/post-condition-2-non-fungible.schema.json b/docs/entities/post-conditions/post-condition-2-non-fungible.schema.json deleted file mode 100644 index f8419bf0d..000000000 --- a/docs/entities/post-conditions/post-condition-2-non-fungible.schema.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "title": "PostConditionNonFungible", - "type": "object", - "allOf": [ - { - "type": "object", - "required": ["principal"], - "additionalProperties": false, - "properties": { - "principal": { - "$ref": "./post-condition-principal.schema.json" - } - } - }, - { - "type": "object", - "required": ["condition_code", "type", "asset_value", "asset"], - "additionalProperties": false, - "properties": { - "condition_code": { - "$ref": "./post-condition-non-fungible-condition-code.schema.json" - }, - "type": { - "enum": ["non_fungible"], - "type": "string" - }, - "asset_value": { - "type": "object", - "additionalProperties": false, - "required": ["hex", "repr"], - "properties": { - "hex": { - "type": "string" - }, - "repr": { - "type": "string" - } - } - }, - "asset": { - "type": "object", - "required": ["asset_name", "contract_address", "contract_name"], - "additionalProperties": false, - "properties": { - "asset_name": { - "type": "string" - }, - "contract_address": { - "type": "string" - }, - "contract_name": { - "type": "string" - } - } - } - } - } - ] -} diff --git a/docs/entities/post-conditions/post-condition-fungible-condition-code.schema.json b/docs/entities/post-conditions/post-condition-fungible-condition-code.schema.json deleted file mode 100644 index 0b1fa05a3..000000000 --- a/docs/entities/post-conditions/post-condition-fungible-condition-code.schema.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "title": "PostConditionFungibleConditionCode", - "description": "A fungible condition code encodes a statement being made for either STX or a fungible token, with respect to the originating account.", - "type": "string", - "enum": [ - "sent_equal_to", - "sent_greater_than", - "sent_greater_than_or_equal_to", - "sent_less_than", - "sent_less_than_or_equal_to" - ] -} diff --git a/docs/entities/post-conditions/post-condition-mode.schema.json b/docs/entities/post-conditions/post-condition-mode.schema.json deleted file mode 100644 index 3a1d1d6b0..000000000 --- a/docs/entities/post-conditions/post-condition-mode.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "PostConditionMode", - "description": "", - "type": "string", - "enum": ["allow", "deny"] -} diff --git a/docs/entities/post-conditions/post-condition-non-fungible-condition-code.schema.json b/docs/entities/post-conditions/post-condition-non-fungible-condition-code.schema.json deleted file mode 100644 index bdf0c5bcf..000000000 --- a/docs/entities/post-conditions/post-condition-non-fungible-condition-code.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "PostConditionNonFungibleConditionCode", - "description": "A non-fungible condition code encodes a statement being made about a non-fungible token, with respect to whether or not the particular non-fungible token is owned by the account.", - "type": "string", - "enum": ["sent", "not_sent"] -} diff --git a/docs/entities/post-conditions/post-condition-principal-type.schema.json b/docs/entities/post-conditions/post-condition-principal-type.schema.json deleted file mode 100644 index fc20593d5..000000000 --- a/docs/entities/post-conditions/post-condition-principal-type.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "PostConditionPrincipalType", - "description": "", - "type": "string", - "enum": ["principal_origin", "principal_standard", "principal_contract"] -} diff --git a/docs/entities/post-conditions/post-condition-principal.schema.json b/docs/entities/post-conditions/post-condition-principal.schema.json deleted file mode 100644 index 4013ed67c..000000000 --- a/docs/entities/post-conditions/post-condition-principal.schema.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "title": "PostConditionPrincipal", - "type": "object", - "anyOf": [ - { - "type": "object", - "additionalProperties": false, - "description": "Principal Origin", - "required": ["type_id"], - "properties": { - "type_id": { - "type": "string", - "description": "String literal of type `PostConditionPrincipalType`", - "enum": ["principal_origin"] - } - } - }, - { - "type": "object", - "description": "Principal Standard", - "required": ["type_id", "address"], - "additionalProperties": false, - "properties": { - "type_id": { - "type": "string", - "description": "String literal of type `PostConditionPrincipalType`", - "enum": ["principal_standard"] - }, - "address": { "type": "string" } - } - }, - { - "type": "object", - "description": "Principal Contract", - "required": ["type_id", "address", "contract_name"], - "additionalProperties": false, - "properties": { - "type_id": { - "type": "string", - "description": "String literal of type `PostConditionPrincipalType`", - "enum": ["principal_contract"] - }, - "address": { "type": "string" }, - "contract_name": { "type": "string" } - } - } - ] -} diff --git a/docs/entities/post-conditions/post-condition-type.schema.json b/docs/entities/post-conditions/post-condition-type.schema.json deleted file mode 100644 index e459c73bd..000000000 --- a/docs/entities/post-conditions/post-condition-type.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "PostConditionType", - "description": "", - "type": "string", - "enum": ["stx", "non_fungible", "fungible"] -} diff --git a/docs/entities/post-conditions/post-condition.schema.json b/docs/entities/post-conditions/post-condition.schema.json deleted file mode 100644 index 18a09bd40..000000000 --- a/docs/entities/post-conditions/post-condition.schema.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "title": "PostCondition", - "description": "Post-conditionscan limit the damage done to a user's assets", - "anyOf": [ - { - "$ref": "./post-condition-0-stx.schema.json" - }, - { - "$ref": "./post-condition-1-fungible.schema.json" - }, - { - "$ref": "./post-condition-2-non-fungible.schema.json" - } - ] -} diff --git a/docs/entities/rosetta/rosetta-account-identifier.schema.json b/docs/entities/rosetta/rosetta-account-identifier.schema.json deleted file mode 100644 index b4eb9bb7b..000000000 --- a/docs/entities/rosetta/rosetta-account-identifier.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "object", - "title": "RosettaAccountIdentifier", - "description": "The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated).", - "required": ["address"], - "properties": { - "address": { - "type": "string", - "description": "The address may be a cryptographic public key (or some encoding of it) or a provided username." - }, - "sub_account": { - "$ref": "./rosetta-sub-account.schema.json" - }, - "metadata": { - "type": "object", - "description": "Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata." - } - } -} diff --git a/docs/entities/rosetta/rosetta-account.schema.json b/docs/entities/rosetta/rosetta-account.schema.json deleted file mode 100644 index fa2a2ca0d..000000000 --- a/docs/entities/rosetta/rosetta-account.schema.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "object", - "title": "RosettaAccount", - "description": "The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated).", - "required": ["address"], - "additionalProperties": false, - "properties": { - "address": { - "type": "string", - "description": "The address may be a cryptographic public key (or some encoding of it) or a provided username." - }, - "sub_account": { - "$ref": "./rosetta-sub-account.schema.json" - }, - "metadata": { - "type": "object", - "description": "Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata." - } - } -} diff --git a/docs/entities/rosetta/rosetta-amount-max-fee.schema.json b/docs/entities/rosetta/rosetta-amount-max-fee.schema.json deleted file mode 100644 index 1fe85737f..000000000 --- a/docs/entities/rosetta/rosetta-amount-max-fee.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "object", - "title": "RosettaMaxFeeAmount", - "description": "Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency.", - "required": ["value", "currency"], - "properties": { - "value": { - "type": "string", - "description": "Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000." - }, - "currency": { - "$ref": "./rosetta-currency.schema.json" - }, - "metadata": { - "type": "object", - "description": "" - } - } -} diff --git a/docs/entities/rosetta/rosetta-amount.schema.json b/docs/entities/rosetta/rosetta-amount.schema.json deleted file mode 100644 index 420821166..000000000 --- a/docs/entities/rosetta/rosetta-amount.schema.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "object", - "title": "RosettaAmount", - "additionalProperties": false, - "description": "Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency.", - "required": ["value", "currency"], - "properties": { - "value": { - "type": "string", - "description": "Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000." - }, - "currency": { - "$ref": "./rosetta-currency.schema.json" - }, - "metadata": { - "type": "object", - "description": "" - } - } -} diff --git a/docs/entities/rosetta/rosetta-block-identifier-hash.schema.json b/docs/entities/rosetta/rosetta-block-identifier-hash.schema.json deleted file mode 100644 index b2fd14978..000000000 --- a/docs/entities/rosetta/rosetta-block-identifier-hash.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "RosettaBlockIdentifierHash", - "description": "This is also known as the block hash.", - "additionalProperties": false, - "required": ["hash"], - "properties": { - "hash": { - "type": "string", - "description": "This is also known as the block hash." - } - } -} diff --git a/docs/entities/rosetta/rosetta-block-identifier-height.schema.json b/docs/entities/rosetta/rosetta-block-identifier-height.schema.json deleted file mode 100644 index 9460202f9..000000000 --- a/docs/entities/rosetta/rosetta-block-identifier-height.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "RosettaBlockIdentifierHeight", - "description": "This is also known as the block height.", - "additionalProperties": false, - "required": ["index"], - "properties": { - "index": { - "type": "integer", - "description": "This is also known as the block height." - } - } -} diff --git a/docs/entities/rosetta/rosetta-block-identifier.schema.json b/docs/entities/rosetta/rosetta-block-identifier.schema.json deleted file mode 100644 index 33c64bc82..000000000 --- a/docs/entities/rosetta/rosetta-block-identifier.schema.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "title": "RosettaBlockIdentifier", - "description": "The block_identifier uniquely identifies a block in a particular network.", - "allOf": [ - { - "$ref": "./rosetta-block-identifier-hash.schema.json" - }, - { - "$ref": "./rosetta-block-identifier-height.schema.json" - } - ] -} diff --git a/docs/entities/rosetta/rosetta-block.schema.json b/docs/entities/rosetta/rosetta-block.schema.json deleted file mode 100644 index 8c99d829a..000000000 --- a/docs/entities/rosetta/rosetta-block.schema.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "object", - "title": "RosettaBlock", - "description": "Blocks contain an array of Transactions that occurred at a particular BlockIdentifier. A hard requirement for blocks returned by Rosetta implementations is that they MUST be inalterable: once a client has requested and received a block identified by a specific BlockIndentifier, all future calls for that same BlockIdentifier must return the same block contents.", - "required": ["block_identifier", "parent_block_identifier", "timestamp", "transactions", "metadata"], - "additionalProperties": false, - "properties": { - "block_identifier": { - "$ref": "./rosetta-block-identifier.schema.json" - }, - "parent_block_identifier": { - "$ref": "./rosetta-parent-block-identifier.schema.json" - }, - "timestamp": { - "type": "integer", - "description": "The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second." - }, - "transactions": { - "type": "array", - "description": "All the transactions in the block", - "items": { - "$ref": "./rosetta-transaction.schema.json" - } - }, - "metadata": { - "type": "object", - "description": "meta data", - "required": ["burn_block_height"], - "properties": { - "burn_block_height": { - "type": "number", - "description": "" - } - } - } - } -} diff --git a/docs/entities/rosetta/rosetta-coin-change.schema.json b/docs/entities/rosetta/rosetta-coin-change.schema.json deleted file mode 100644 index b91519f83..000000000 --- a/docs/entities/rosetta/rosetta-coin-change.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "object", - "title": "RosettaCoinChange", - "description": "CoinChange is used to represent a change in state of a some coin identified by a coin_identifier. This object is part of the Operation model and must be populated for UTXO-based blockchains. Coincidentally, this abstraction of UTXOs allows for supporting both account-based transfers and UTXO-based transfers on the same blockchain (when a transfer is account-based, don't populate this model).", - "required": ["coin_identifier", "coin_action"], - "additionalProperties": false, - "properties": { - "coin_identifier": { - "type": "object", - "description": "CoinIdentifier uniquely identifies a Coin.", - "required": ["identifier"], - "properties": { - "identifier": { - "type": "string", - "description": "Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index." - } - } - }, - "coin_action": { - "type": "string", - "description": "CoinActions are different state changes that a Coin can undergo. When a Coin is created, it is coin_created. When a Coin is spent, it is coin_spent. It is assumed that a single Coin cannot be created or spent more than once.", - "enum": ["coin_created", "coin_spent"] - } - } -} diff --git a/docs/entities/rosetta/rosetta-coin.schema.json b/docs/entities/rosetta/rosetta-coin.schema.json deleted file mode 100644 index b298e00a4..000000000 --- a/docs/entities/rosetta/rosetta-coin.schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "object", - "title": "RosettaCoin", - "additionalProperties": false, - "description": "If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs.", - "required": ["coin_identifier", "amount"], - "properties": { - "coin_identifier": { - "type": "object", - "description": "CoinIdentifier uniquely identifies a Coin.", - "required": ["identifier"], - "additionalProperties": false, - "properties": { - "identifier": { - "type": "string", - "description": "Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index." - } - } - }, - "amount": { - "$ref": "./rosetta-amount.schema.json" - } - } -} diff --git a/docs/entities/rosetta/rosetta-construction-options.schema.json b/docs/entities/rosetta/rosetta-construction-options.schema.json deleted file mode 100644 index 76ff905ef..000000000 --- a/docs/entities/rosetta/rosetta-construction-options.schema.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "title": "RosettaOptions", - "type": "object", - "description": "The options that will be sent directly to /construction/metadata by the caller.", - "additionalProperties": false, - "properties": { - "sender_address": { - "type": "string", - "description": "sender's address " - }, - "type": { - "type": "string", - "description": "Type of operation e.g transfer" - }, - "status": { - "type": "string", - "description": "This value indicates the state of the operations" - }, - "token_transfer_recipient_address": { - "type": "string", - "description": "Recipient's address" - }, - "amount": { - "type": "string", - "description": "Amount to be transfered." - }, - "symbol": { - "type": "string", - "description": "Currency symbol e.g STX" - }, - "decimals": { - "type": "integer", - "description": "Number of decimal places" - }, - "gas_limit": { - "type": "number", - "description": "Maximum price a user is willing to pay." - }, - "gas_price": { - "type": "number", - "description": "Cost necessary to perform a transaction on the network" - }, - "suggested_fee_multiplier": { - "type": "number", - "description": " A suggested fee multiplier to indicate that the suggested fee should be scaled. This may be used to set higher fees for urgent transactions or to pay lower fees when there is less urgency." - }, - "max_fee": { - "type": "string", - "description": "Maximum fee user is willing to pay" - }, - "fee": { - "type": "string", - "description": "Fee for this transaction" - }, - "size": { - "type": "integer", - "description": "Transaction approximative size (used to calculate total fee)." - }, - "memo": { - "type": "string", - "description": "STX token transfer memo." - }, - "number_of_cycles": { - "type": "integer", - "description": "Number of cycles when stacking." - }, - "contract_address": { - "type": "string", - "description": "Address of the contract to call." - }, - "contract_name": { - "type": "string", - "description": "Name of the contract to call." - }, - "burn_block_height": { - "type": "integer", - "description": "Set the burnchain (BTC) block for stacking lock to start." - }, - "reward_cycle_id": { - "type": "integer", - "description": "The reward cycle ID for stacking transaction." - }, - "delegate_to": { - "type": "string", - "description": "Delegator address for when calling `delegate-stacking`." - }, - "pox_addr": { - "type": "string", - "description": "The reward address for stacking transaction. It should be a valid Bitcoin address" - }, - "signer_key": { - "type": "string", - "description": "The hex-encoded signer key (buff 33) for PoX." - }, - "signer_private_key": { - "type": "string", - "description": "The hex-encoded signer private key for PoX. Specify either this or `signer_signature`, otherwise the PoX transaction requires allow-listing from the signer." - }, - "signer_signature": { - "type": "string", - "description": "The hex-encoded signer signature for PoX. Specify either this or `signer_private_key`, otherwise the PoX transaction requires allow-listing from the signer." - }, - "pox_max_amount": { - "type": "string", - "description": "The maximum amount of STX to stack for PoX. If not specified, the `amount` will be used as the `max-amount` for the PoX transaction." - }, - "pox_auth_id": { - "type": "string", - "description": "The auth ID for the PoX transaction. If not specified, a random value will be generated." - } - } -} diff --git a/docs/entities/rosetta/rosetta-currency.schema.json b/docs/entities/rosetta/rosetta-currency.schema.json deleted file mode 100644 index 1763aec5d..000000000 --- a/docs/entities/rosetta/rosetta-currency.schema.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "title": "RosettaCurrency", - "type": "object", - "additionalProperties": false, - "description": "Currency is composed of a canonical Symbol and Decimals. This Decimals value is used to convert an Amount.Value from atomic units (Satoshis) to standard units (Bitcoins).", - "required": ["symbol", "decimals"], - "properties": { - "symbol": { - "type": "string", - "description": "Canonical symbol associated with a currency." - }, - "decimals": { - "type": "integer", - "description": "Number of decimal places in the standard unit representation of the amount. For example, BTC has 8 decimals. Note that it is not possible to represent the value of some currency in atomic units that is not base 10." - }, - "metadata": { - "type": "object", - "description": "Any additional information related to the currency itself. For example, it would be useful to populate this object with the contract address of an ERC-20 token." - } - } -} diff --git a/docs/entities/rosetta/rosetta-error-no-details.schema.json b/docs/entities/rosetta/rosetta-error-no-details.schema.json deleted file mode 100644 index 797ceb1c3..000000000 --- a/docs/entities/rosetta/rosetta-error-no-details.schema.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "object", - "title": "RosettaErrorNoDetails", - "description": "Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields.", - "required": ["code", "message", "retriable"], - "additionalProperties": false, - "properties": { - "code": { - "type": "integer", - "description": "Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code." - }, - "message": { - "type": "string", - "description": "Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field." - }, - "retriable": { - "type": "boolean", - "description": "An error is retriable if the same request may succeed if submitted again." - } - } -} diff --git a/docs/entities/rosetta/rosetta-error.schema.json b/docs/entities/rosetta/rosetta-error.schema.json deleted file mode 100644 index c45c31f91..000000000 --- a/docs/entities/rosetta/rosetta-error.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "object", - "title": "RosettaError", - "description": "Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields.", - "additionalProperties": false, - "required": ["code", "message", "retriable"], - "properties": { - "code": { - "type": "integer", - "description": "Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code." - }, - "message": { - "type": "string", - "description": "Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field." - }, - "retriable": { - "type": "boolean", - "description": "An error is retriable if the same request may succeed if submitted again." - }, - "details": { - "type": "object", - "description": "Often times it is useful to return context specific to the request that caused the error (i.e. a sample of the stack trace or impacted account) in addition to the standard error message.", - "properties": { - "address": { - "type": "string" - }, - "error": { - "type": "string" - } - } - } - } -} diff --git a/docs/entities/rosetta/rosetta-genesis-block-identifier.schema.json b/docs/entities/rosetta/rosetta-genesis-block-identifier.schema.json deleted file mode 100644 index 16842b16a..000000000 --- a/docs/entities/rosetta/rosetta-genesis-block-identifier.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "object", - "title": "RosettaGenesisBlockIdentifier", - "description": "The block_identifier uniquely identifies a block in a particular network.", - "required": ["index", "hash"], - "additionalProperties": false, - "properties": { - "index": { - "type": "integer", - "description": "This is also known as the block height." - }, - "hash": { - "type": "string", - "description": "Block hash" - } - } -} diff --git a/docs/entities/rosetta/rosetta-network-identifier.schema.json b/docs/entities/rosetta/rosetta-network-identifier.schema.json deleted file mode 100644 index 76833459f..000000000 --- a/docs/entities/rosetta/rosetta-network-identifier.schema.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "type": "object", - "title": "NetworkIdentifier", - "description": "The network_identifier specifies which network a particular object is associated with.", - "required": ["blockchain", "network"], - "additionalProperties": false, - "properties": { - "blockchain": { - "type": "string", - "description": "Blockchain name" - }, - "network": { - "type": "string", - "description": "If a blockchain has a specific chain-id or network identifier, it should go in this field. It is up to the client to determine which network-specific identifier is mainnet or testnet." - }, - "sub_network_identifier": { - "type": "object", - "description": "In blockchains with sharded state, the SubNetworkIdentifier is required to query some object on a specific shard. This identifier is optional for all non-sharded blockchains.", - "required": ["network"], - "additionalProperties": false, - "properties": { - "network": { - "type": "string", - "description": "Network name" - }, - "metadata": { - "type": "object", - "description": "Meta data from subnetwork identifier", - "required": ["producer"], - "properties": { - "producer": { - "type": "string", - "description": "producer" - } - } - } - } - } - } -} diff --git a/docs/entities/rosetta/rosetta-network-peers.schema.json b/docs/entities/rosetta/rosetta-network-peers.schema.json deleted file mode 100644 index 8a66dda33..000000000 --- a/docs/entities/rosetta/rosetta-network-peers.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "object", - "title": "RosettaPeers", - "description": "A Peer is a representation of a node's peer.", - "required": ["peer_id"], - "additionalProperties": false, - "properties": { - "peer_id": { - "type": "string", - "description": "peer id" - }, - "metadata": { - "type": "object", - "description": "meta data" - } - } -} diff --git a/docs/entities/rosetta/rosetta-oldest-block-identifier.schema.json b/docs/entities/rosetta/rosetta-oldest-block-identifier.schema.json deleted file mode 100644 index 6a152393e..000000000 --- a/docs/entities/rosetta/rosetta-oldest-block-identifier.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "object", - "title": "RosettaOldestBlockIdentifier", - "description": "The block_identifier uniquely identifies a block in a particular network.", - "required": ["index", "hash"], - "additionalProperties": false, - "properties": { - "index": { - "type": "integer", - "description": "This is also known as the block height." - }, - "hash": { - "type": "string", - "description": "Block hash" - } - } -} diff --git a/docs/entities/rosetta/rosetta-operation-identifier.schema.json b/docs/entities/rosetta/rosetta-operation-identifier.schema.json deleted file mode 100644 index 08f040954..000000000 --- a/docs/entities/rosetta/rosetta-operation-identifier.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "object", - "title": "RosettaOperationIdentifier", - "description": "The operation_identifier uniquely identifies an operation within a transaction.", - "required": ["index"], - "additionalProperties": false, - "properties": { - "index": { - "type": "integer", - "description": "The operation index is used to ensure each operation has a unique identifier within a transaction. This index is only relative to the transaction and NOT GLOBAL. The operations in each transaction should start from index 0. To clarify, there may not be any notion of an operation index in the blockchain being described." - }, - "network_index": { - "type": "integer", - "description": "Some blockchains specify an operation index that is essential for client use. For example, Bitcoin uses a network_index to identify which UTXO was used in a transaction. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains)." - } - } -} diff --git a/docs/entities/rosetta/rosetta-operation-statuses.schema.json b/docs/entities/rosetta/rosetta-operation-statuses.schema.json deleted file mode 100644 index bc3f23dc3..000000000 --- a/docs/entities/rosetta/rosetta-operation-statuses.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "object", - "title": "RosettaOperationStatus", - "description": "OperationStatus is utilized to indicate which Operation status are considered successful.", - "required": ["status", "successful"], - "additionalProperties": false, - "properties": { - "status": { - "type": "string", - "description": "The status is the network-specific status of the operation." - }, - "successful": { - "type": "boolean", - "description": "An Operation is considered successful if the Operation.Amount should affect the Operation.Account. Some blockchains (like Bitcoin) only include successful operations in blocks but other blockchains (like Ethereum) include unsuccessful operations that incur a fee. To reconcile the computed balance from the stream of Operations, it is critical to understand which Operation.Status indicate an Operation is successful and should affect an Account." - } - } -} diff --git a/docs/entities/rosetta/rosetta-operation.schema.json b/docs/entities/rosetta/rosetta-operation.schema.json deleted file mode 100644 index d3ee5ed6c..000000000 --- a/docs/entities/rosetta/rosetta-operation.schema.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "type": "object", - "title": "RosettaOperation", - "description": "Operations contain all balance-changing information within a transaction. They are always one-sided (only affect 1 AccountIdentifier) and can succeed or fail independently from a Transaction.", - "required": ["operation_identifier", "type"], - "additionalProperties": false, - "properties": { - "operation_identifier": { - "$ref": "./rosetta-operation-identifier.schema.json" - }, - "related_operations": { - "type": "array", - "description": "Restrict referenced related_operations to identifier indexes < the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree.", - "items": { - "$ref": "./rosetta-related-operation.schema.json" - } - }, - "type": { - "type": "string", - "description": "The network-specific type of the operation. Ensure that any type that can be returned here is also specified in the NetworkStatus. This can be very useful to downstream consumers that parse all block data." - }, - "status": { - "type": "string", - "description": "The network-specific status of the operation. Status is not defined on the transaction object because blockchains with smart contracts may have transactions that partially apply. Blockchains with atomic transactions (all operations succeed or all operations fail) will have the same status for each operation." - }, - "account": { - "$ref": "./../../entities/rosetta/rosetta-account.schema.json" - }, - "amount": { - "$ref": "./../../entities/rosetta/rosetta-amount.schema.json" - }, - "coin_change": { - "$ref": "./rosetta-coin-change.schema.json" - }, - "metadata": { - "type": "object", - "description": "Operations Meta Data" - } - } -} diff --git a/docs/entities/rosetta/rosetta-other-transaction-identifier.schema.json b/docs/entities/rosetta/rosetta-other-transaction-identifier.schema.json deleted file mode 100644 index feaf65e15..000000000 --- a/docs/entities/rosetta/rosetta-other-transaction-identifier.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "OtherTransactionIdentifier", - "description": "The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool.", - "required": ["hash"], - "additionalProperties": false, - "properties": { - "hash": { - "type": "string", - "description": "Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier." - } - } -} diff --git a/docs/entities/rosetta/rosetta-parent-block-identifier.schema.json b/docs/entities/rosetta/rosetta-parent-block-identifier.schema.json deleted file mode 100644 index eb68dbe95..000000000 --- a/docs/entities/rosetta/rosetta-parent-block-identifier.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "object", - "title": "RosettaParentBlockIdentifier", - "additionalProperties": false, - "description": "The block_identifier uniquely identifies a block in a particular network.", - "required": ["index", "hash"], - "properties": { - "index": { - "type": "integer", - "description": "This is also known as the block height." - }, - "hash": { - "type": "string", - "description": "Block hash" - } - } -} diff --git a/docs/entities/rosetta/rosetta-partial-block-identifier.schema.json b/docs/entities/rosetta/rosetta-partial-block-identifier.schema.json deleted file mode 100644 index db95c2bb1..000000000 --- a/docs/entities/rosetta/rosetta-partial-block-identifier.schema.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "object", - "title": "RosettaPartialBlockIdentifier", - "description": "When fetching data by BlockIdentifier, it may be possible to only specify the index or hash. If neither property is specified, it is assumed that the client is making a request at the current block.", - "anyOf": [ - { - "$ref": "./rosetta-block-identifier-hash.schema.json" - }, - { - "$ref": "./rosetta-block-identifier-height.schema.json" - }, - { - "type": "object" - } - ] -} diff --git a/docs/entities/rosetta/rosetta-public-key.schema.json b/docs/entities/rosetta/rosetta-public-key.schema.json deleted file mode 100644 index d7c43d396..000000000 --- a/docs/entities/rosetta/rosetta-public-key.schema.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "object", - "title": "RosettaPublicKey", - "description": "PublicKey contains a public key byte array for a particular CurveType encoded in hex. Note that there is no PrivateKey struct as this is NEVER the concern of an implementation.", - "required": ["hex_bytes", "curve_type"], - "additionalProperties": false, - "properties": { - "hex_bytes": { - "type": "string", - "description": "Hex-encoded public key bytes in the format specified by the CurveType." - }, - "curve_type": { - "type": "string", - "description": "CurveType is the type of cryptographic curve associated with a PublicKey.", - "enum": ["secp256k1", "edwards25519"] - } - } -} diff --git a/docs/entities/rosetta/rosetta-related-operation.schema.json b/docs/entities/rosetta/rosetta-related-operation.schema.json deleted file mode 100644 index 9cc1ec217..000000000 --- a/docs/entities/rosetta/rosetta-related-operation.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "title": "RosettaRelatedOperation", - "type": "object", - "description": "Restrict referenced related_operations to identifier indexes < the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree.", - "required": ["index"], - "additionalProperties": false, - "properties": { - "index": { - "type": "integer", - "description": "Describes the index of related operation." - }, - "network_index": { - "type": "integer", - "description": "Some blockchains specify an operation index that is essential for client use. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains)." - } - } -} diff --git a/docs/entities/rosetta/rosetta-signature-type.schema.json b/docs/entities/rosetta/rosetta-signature-type.schema.json deleted file mode 100644 index acb76ff09..000000000 --- a/docs/entities/rosetta/rosetta-signature-type.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "SignatureType", - "type": "string", - "description": "SignatureType is the type of a cryptographic signature.", - "enum": ["ecdsa", "ecdsa_recovery", "ed25519", "schnorr_1", "schnorr_poseidon"] -} diff --git a/docs/entities/rosetta/rosetta-signature.schema.json b/docs/entities/rosetta/rosetta-signature.schema.json deleted file mode 100644 index 89c8324d0..000000000 --- a/docs/entities/rosetta/rosetta-signature.schema.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "object", - "title": "RosettaSignature", - "description": "Signature contains the payload that was signed, the public keys of the keypairs used to produce the signature, the signature (encoded in hex), and the SignatureType. PublicKey is often times not known during construction of the signing payloads but may be needed to combine signatures properly.", - "required": ["signing_payload", "public_key", "signature_type", "hex_bytes"], - "additionalProperties": false, - "properties": { - "signing_payload": { - "$ref": "./../../entities/rosetta/rosetta-signing-payload.schema.json" - }, - "public_key": { - "$ref": "./../../entities/rosetta/rosetta-public-key.schema.json" - }, - "signature_type": { - "$ref": "./../../entities/rosetta/rosetta-signature-type.schema.json" - }, - "hex_bytes": { - "type": "string" - } - } -} diff --git a/docs/entities/rosetta/rosetta-signing-payload.schema.json b/docs/entities/rosetta/rosetta-signing-payload.schema.json deleted file mode 100644 index 8276662e5..000000000 --- a/docs/entities/rosetta/rosetta-signing-payload.schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "object", - "title": "SigningPayload", - "description": "SigningPayload is signed by the client with the keypair associated with an address using the specified SignatureType. SignatureType can be optionally populated if there is a restriction on the signature scheme that can be used to sign the payload.", - "required": ["hex_bytes"], - "additionalProperties": false, - "properties": { - "address": { - "type": "string", - "description": "[DEPRECATED by account_identifier in v1.4.4] The network-specific address of the account that should sign the payload." - }, - "account_identifier": { - "$ref": "./rosetta-account.schema.json" - }, - "hex_bytes": { - "type": "string" - }, - "signature_type": { - "type": "string", - "description": "SignatureType is the type of a cryptographic signature.", - "enum": ["ecdsa", "ecdsa_recovery", "ed25519", "schnorr_1", "schnorr_poseidon"] - } - } -} diff --git a/docs/entities/rosetta/rosetta-sub-account.schema.json b/docs/entities/rosetta/rosetta-sub-account.schema.json deleted file mode 100644 index 9e177030e..000000000 --- a/docs/entities/rosetta/rosetta-sub-account.schema.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "object", - "title": "RosettaSubAccount", - "description": "An account may have state specific to a contract address (ERC-20 token) and/or a stake (delegated balance). The sub_account_identifier should specify which state (if applicable) an account instantiation refers to.", - "required": ["address"], - "additionalProperties": false, - "properties": { - "address": { - "type": "string", - "description": "The address may be a cryptographic public key (or some encoding of it) or a provided username." - }, - "metadata": { - "type": "object", - "description": "If the SubAccount address is not sufficient to uniquely specify a SubAccount, any other identifying information can be stored here. It is important to note that two SubAccounts with identical addresses but differing metadata will not be considered equal by clients." - } - } -} diff --git a/docs/entities/rosetta/rosetta-sync-status.schema.json b/docs/entities/rosetta/rosetta-sync-status.schema.json deleted file mode 100644 index 1bae86e84..000000000 --- a/docs/entities/rosetta/rosetta-sync-status.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "object", - "title": "RosettaSyncStatus", - "description": "SyncStatus is used to provide additional context about an implementation's sync status. It is often used to indicate that an implementation is healthy when it cannot be queried until some sync phase occurs. If an implementation is immediately queryable, this model is often not populated.", - "required": ["current_index"], - "additionalProperties": false, - "properties": { - "current_index": { - "type": "integer", - "description": "CurrentIndex is the index of the last synced block in the current stage." - }, - "target_index": { - "type": "integer", - "description": "TargetIndex is the index of the block that the implementation is attempting to sync to in the current stage." - }, - "stage": { - "type": "string", - "description": "Stage is the phase of the sync process." - }, - "synced": { - "type": "boolean", - "description": "Synced indicates if an implementation has synced up to the most recent block." - } - } -} diff --git a/docs/entities/rosetta/rosetta-transaction-identifier.schema.json b/docs/entities/rosetta/rosetta-transaction-identifier.schema.json deleted file mode 100644 index d784ad20f..000000000 --- a/docs/entities/rosetta/rosetta-transaction-identifier.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "TransactionIdentifier", - "description": "The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool.", - "required": ["hash"], - "additionalProperties": false, - "properties": { - "hash": { - "type": "string", - "description": "Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier." - } - } -} diff --git a/docs/entities/rosetta/rosetta-transaction.schema.json b/docs/entities/rosetta/rosetta-transaction.schema.json deleted file mode 100644 index ab3e6d24f..000000000 --- a/docs/entities/rosetta/rosetta-transaction.schema.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "object", - "title": "RosettaTransaction", - "description": "Transactions contain an array of Operations that are attributable to the same TransactionIdentifier.", - "required": ["transaction_identifier", "operations"], - "additionalProperties": false, - "properties": { - "transaction_identifier": { - "$ref": "./rosetta-transaction-identifier.schema.json" - }, - "operations": { - "type": "array", - "description": "List of operations", - "items": { - "$ref": "./rosetta-operation.schema.json" - } - }, - "metadata": { - "type": "object", - "description": "Transactions that are related to other transactions (like a cross-shard transaction) should include the tranaction_identifier of these transactions in the metadata.", - "properties": { - "memo": { - "type": "string", - "description": "STX token transfer memo." - }, - "size": { - "type": "integer", - "description": "The Size" - }, - "lockTime": { - "type": "integer", - "description": "The locktime" - } - } - } - } -} diff --git a/docs/entities/smart-contracts/smart-contract-status.example.json b/docs/entities/smart-contracts/smart-contract-status.example.json deleted file mode 100644 index ac5cb17bb..000000000 --- a/docs/entities/smart-contracts/smart-contract-status.example.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "contract_id": "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.swap-helper-bridged-v1-1", - "status": "success", - "tx_id": "0x8542d28e427256ea3c29dcd8793222891999ceff4ef1bb062e2f21cb6def6884", - "block_height": 111021 -} diff --git a/docs/entities/smart-contracts/smart-contract-status.schema.json b/docs/entities/smart-contracts/smart-contract-status.schema.json deleted file mode 100644 index 116cf8c65..000000000 --- a/docs/entities/smart-contracts/smart-contract-status.schema.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "title": "SmartContractStatus", - "description": "Deployment status of a smart contract", - "type": "object", - "additionalProperties": false, - "required": [ - "status", - "tx_id", - "contract_id" - ], - "properties": { - "status": { - "type": "string", - "description": "Smart contract deployment transaction status" - }, - "tx_id": { - "type": "string", - "description": "Deployment transaction ID" - }, - "contract_id": { - "type": "string", - "description": "Smart contract ID" - }, - "block_height": { - "type": "integer", - "description": "Height of the transaction confirmation block" - } - } -} diff --git a/docs/entities/stacking/pool-delegation.example.json b/docs/entities/stacking/pool-delegation.example.json deleted file mode 100644 index 9d2fdddf8..000000000 --- a/docs/entities/stacking/pool-delegation.example.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "stacker": "SPDGWQ60E1QXTC6E4VHKK0NG34EAX554WDFFFHMF", - "pox_addr": "bc1qxhmdufsvnuaaaer4ynz88fspdsxq2h9e9cetdj", - "amount_ustx": "2062697998", - "burn_block_unlock_height": 781984, - "block_height": 65917, - "tx_id": "0x3c81cd26ed172a7e552ed245b8b290abefa4f82dfc610a0091ac91c2eed7f9e6" -} diff --git a/docs/entities/stacking/pool-delegation.schema.json b/docs/entities/stacking/pool-delegation.schema.json deleted file mode 100644 index c512da9d9..000000000 --- a/docs/entities/stacking/pool-delegation.schema.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "title": "PoolDelegation", - "type": "object", - "additionalProperties": false, - "required": ["stacker", "amount_ustx", "block_height", "tx_id"], - "properties": { - "stacker": { - "type": "string", - "description": "The principal of the pool member that issued the delegation" - }, - "pox_addr": { - "type": "string", - "description": "The pox-addr value specified by the stacker in the delegation operation" - }, - "amount_ustx": { - "type": "string", - "description": "The amount of uSTX delegated by the stacker" - }, - "burn_block_unlock_height": { - "type": "integer", - "description": "The optional burnchain block unlock height that the stacker may have specified" - }, - "block_height": { - "type": "integer", - "description": "The block height at which the stacker delegation transaction was mined at" - }, - "tx_id": { - "type": "string", - "description": "The tx_id of the stacker delegation operation" - } - } -} diff --git a/docs/entities/stacking/pox-cycle.example.json b/docs/entities/stacking/pox-cycle.example.json deleted file mode 100644 index bc2813d63..000000000 --- a/docs/entities/stacking/pox-cycle.example.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "block_height": 50, - "cycle_number": 14, - "index_block_hash": "0xf5be33abc4e508bdaf2191e88339372edcb3358c44e2a31e1b9b44f2880dde09", - "total_signers": 3, - "total_stacked_amount": "1372502700000000000", - "total_weight": 9 -} diff --git a/docs/entities/stacking/pox-cycle.schema.json b/docs/entities/stacking/pox-cycle.schema.json deleted file mode 100644 index 61e2e4a23..000000000 --- a/docs/entities/stacking/pox-cycle.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "title": "PoxCycle", - "type": "object", - "additionalProperties": false, - "required": [ - "block_height", - "index_block_hash", - "cycle_number", - "total_weight", - "total_stacked_amount", - "total_signers" - ], - "properties": { - "block_height": { - "type": "integer" - }, - "index_block_hash": { - "type": "string" - }, - "cycle_number": { - "type": "integer" - }, - "total_weight": { - "type": "integer" - }, - "total_stacked_amount": { - "type": "string" - }, - "total_signers": { - "type": "integer" - } - } -} diff --git a/docs/entities/stacking/signer.example.json b/docs/entities/stacking/signer.example.json deleted file mode 100644 index 797b55be7..000000000 --- a/docs/entities/stacking/signer.example.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "signing_key": "0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d", - "signer_address": "STRYYQQ9M8KAF4NS7WNZQYY59X93XEKR31JP64CP", - "stacked_amount": "686251350000000000", - "stacked_amount_percent": 50, - "weight": 5, - "weight_percent": 55.55555555555556, - "solo_stacker_count": 16, - "pooled_stacker_count": 3615 -} diff --git a/docs/entities/stacking/signer.schema.json b/docs/entities/stacking/signer.schema.json deleted file mode 100644 index c4c7fbaac..000000000 --- a/docs/entities/stacking/signer.schema.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "title": "PoxSigner", - "type": "object", - "additionalProperties": false, - "required": [ - "signing_key", - "signer_address", - "weight", - "stacked_amount", - "weight_percent", - "stacked_amount_percent", - "solo_stacker_count", - "pooled_stacker_count" - ], - "properties": { - "signing_key": { - "type": "string" - }, - "signer_address": { - "type": "string", - "description": "The Stacks address derived from the signing_key." - }, - "weight": { - "type": "integer" - }, - "stacked_amount": { - "type": "string" - }, - "weight_percent": { - "type": "number" - }, - "stacked_amount_percent": { - "type": "number" - }, - "solo_stacker_count": { - "type": "integer", - "description": "The number of solo stackers associated with this signer." - }, - "pooled_stacker_count": { - "type": "integer", - "description": "The number of pooled stackers associated with this signer." - } - } -} diff --git a/docs/entities/stacking/stacker.example.json b/docs/entities/stacking/stacker.example.json deleted file mode 100644 index 6dd5f3a8e..000000000 --- a/docs/entities/stacking/stacker.example.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "pox_address": "15Z2sAvjgVDpcBh4vx9g2XKU8FVHYcXNaj", - "stacked_amount": "686251350000000000", - "stacker_address": "STRYYQQ9M8KAF4NS7WNZQYY59X93XEKR31JP64CP", - "stacker_type": "solo" -} diff --git a/docs/entities/stacking/stacker.schema.json b/docs/entities/stacking/stacker.schema.json deleted file mode 100644 index 02a4c19f9..000000000 --- a/docs/entities/stacking/stacker.schema.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "title": "PoxStacker", - "type": "object", - "additionalProperties": false, - "required": [ - "stacker_address", - "stacked_amount", - "pox_address", - "stacker_type" - ], - "properties": { - "stacker_address": { - "type": "string" - }, - "stacked_amount": { - "type": "string" - }, - "pox_address": { - "type": "string" - }, - "stacker_type": { - "type": "string", - "enum": ["solo", "pooled"] - } - } -} diff --git a/docs/entities/tokens/ft-holder-entry.schema.json b/docs/entities/tokens/ft-holder-entry.schema.json deleted file mode 100644 index 1454ae890..000000000 --- a/docs/entities/tokens/ft-holder-entry.schema.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "object", - "title": "FtHolderEntry", - "required": ["address", "balance"], - "additionalProperties": false, - "properties": { - "address": { - "type": "string" - }, - "balance": { - "type": "string" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-history-event-0-tx-id.example.schema.json b/docs/entities/tokens/non-fungible-token-history-event-0-tx-id.example.schema.json deleted file mode 100644 index 048887ebf..000000000 --- a/docs/entities/tokens/non-fungible-token-history-event-0-tx-id.example.schema.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "sender": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "recipient": "SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v4", - "event_index": 0, - "asset_event_type": "transfer", - "tx_id": "0x4510e6cff6414747f402126b92e35d90165f9f5e1f2750f50ed2b8e052b25108" -} diff --git a/docs/entities/tokens/non-fungible-token-history-event-0-tx-id.schema.json b/docs/entities/tokens/non-fungible-token-history-event-0-tx-id.schema.json deleted file mode 100644 index d8112c5df..000000000 --- a/docs/entities/tokens/non-fungible-token-history-event-0-tx-id.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenHistoryEventWithTxId", - "description": "Non-Fungible Token history event with transaction id", - "required": ["event_index", "asset_event_type", "tx_id"], - "additionalProperties": false, - "properties": { - "sender": { - "type": "string", - "nullable": true - }, - "recipient": { - "type": "string" - }, - "event_index": { - "type": "integer" - }, - "asset_event_type": { - "type": "string" - }, - "tx_id": { - "type": "string" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-history-event-1-tx-metadata.example.schema.json b/docs/entities/tokens/non-fungible-token-history-event-1-tx-metadata.example.schema.json deleted file mode 100644 index b54cc232f..000000000 --- a/docs/entities/tokens/non-fungible-token-history-event-1-tx-metadata.example.schema.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "sender": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "recipient": "SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v4", - "event_index": 0, - "asset_event_type": "transfer", - "tx": { - "tx_id": "0x4510e6cff6414747f402126b92e35d90165f9f5e1f2750f50ed2b8e052b25108", - "nonce": 44, - "fee_rate": "143600", - "sender_address": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "non_fungible", - "condition_code": "sent", - "principal": { - "type_id": "principal_standard", - "address": "SPZGN4KG2AKNNPEWVXXB6EWN1W9WV1JWMGBVVNK3" - }, - "asset": { - "contract_name": "the-explorer-guild", - "asset_name": "The-Explorer-Guild", - "contract_address": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173" - }, - "asset_value": { - "hex": "0x01000000000000000000000000000009c5", - "repr": "u2501" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0x236721170b99d5dc0be2e77b5f5e0394ffe49af7862c3e82b91245b50e28d191", - "parent_block_hash": "0xdf9e6a371ef6706ed9e5362f61981d3e9e1b985acb67495490bacc40391d7372", - "block_height": 37482, - "burn_block_time": 1636673415, - "burn_block_time_iso": "2021-11-11T23:30:15.000Z", - "parent_burn_block_time": 1636672174, - "parent_burn_block_time_iso": "2021-11-11T23:09:34.000Z", - "canonical": true, - "tx_index": 35, - "tx_status": "success", - "tx_result": { - "hex": "0x0703", - "repr": "(ok true)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 1, - "events": [], - "execution_cost_read_count": 17, - "execution_cost_read_length": 50450, - "execution_cost_runtime": 54533000, - "execution_cost_write_count": 2, - "execution_cost_write_length": 685, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v4", - "function_name": "list-asset", - "function_signature": "(define-public (list-asset (tradables trait_reference) (tradable-id uint) (price uint) (commission uint)))", - "function_args": [ - { - "hex": "0x061605d06be54b4b9fa14cb9bd464635c0bf5287e313127468652d6578706c6f7265722d6775696c64", - "repr": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild", - "name": "tradables", - "type": "trait_reference" - }, - { - "hex": "0x01000000000000000000000000000009c5", - "repr": "u2501", - "name": "tradable-id", - "type": "uint" - }, - { - "hex": "0x0100000000000000000000000005f5e100", - "repr": "u100000000", - "name": "price", - "type": "uint" - }, - { - "hex": "0x0100000000000000000000000000000064", - "repr": "u100", - "name": "commission", - "type": "uint" - } - ] - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-history-event-1-tx-metadata.schema.json b/docs/entities/tokens/non-fungible-token-history-event-1-tx-metadata.schema.json deleted file mode 100644 index 45f094a8e..000000000 --- a/docs/entities/tokens/non-fungible-token-history-event-1-tx-metadata.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenHistoryEventWithTxMetadata", - "description": "Non-Fungible Token history event with transaction metadata", - "required": ["event_index", "asset_event_type", "tx"], - "additionalProperties": false, - "properties": { - "sender": { - "type": "string", - "nullable": true - }, - "recipient": { - "type": "string" - }, - "event_index": { - "type": "integer" - }, - "asset_event_type": { - "type": "string" - }, - "tx": { - "$ref": "../transactions/transaction.schema.json" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-history-event.schema.json b/docs/entities/tokens/non-fungible-token-history-event.schema.json deleted file mode 100644 index 8b50aa30a..000000000 --- a/docs/entities/tokens/non-fungible-token-history-event.schema.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenHistoryEvent", - "description": "Describes an event from the history of a Non-Fungible Token", - "additionalProperties": false, - "anyOf": [ - { - "$ref": "./non-fungible-token-history-event-0-tx-id.schema.json" - }, - { - "$ref": "./non-fungible-token-history-event-1-tx-metadata.schema.json" - } - ] -} diff --git a/docs/entities/tokens/non-fungible-token-holding-0-tx-id.example.schema.json b/docs/entities/tokens/non-fungible-token-holding-0-tx-id.example.schema.json deleted file mode 100644 index 77facc537..000000000 --- a/docs/entities/tokens/non-fungible-token-holding-0-tx-id.example.schema.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "asset_identifier": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild", - "value": { - "hex": "0x0100000000000000000000000000000803", - "repr": "u2051" - }, - "tx_id": "0x12e6f88724d0e630de26c376f172cf1781e25435e2b4ee54d36a949b244e429c" -} diff --git a/docs/entities/tokens/non-fungible-token-holding-0-tx-id.schema.json b/docs/entities/tokens/non-fungible-token-holding-0-tx-id.schema.json deleted file mode 100644 index 426547eae..000000000 --- a/docs/entities/tokens/non-fungible-token-holding-0-tx-id.schema.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenHoldingWithTxId", - "description": "Ownership of a Non-Fungible Token", - "required": ["asset_identifier", "value", "tx_id", "block_height"], - "additionalProperties": false, - "properties": { - "asset_identifier": { - "type": "string" - }, - "value": { - "type": "object", - "required": ["hex", "repr"], - "description": "Non-Fungible Token value", - "additionalProperties": false, - "properties": { - "hex": { - "type": "string", - "description": "Hex string representing the identifier of the Non-Fungible Token" - }, - "repr": { - "type": "string", - "description": "Readable string of the Non-Fungible Token identifier" - } - } - }, - "block_height": { - "type": "number" - }, - "tx_id": { - "type": "string" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-holding-1-tx-metadata.example.schema.json b/docs/entities/tokens/non-fungible-token-holding-1-tx-metadata.example.schema.json deleted file mode 100644 index b5c403ac0..000000000 --- a/docs/entities/tokens/non-fungible-token-holding-1-tx-metadata.example.schema.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "asset_identifier": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild", - "value": { - "hex": "0x0100000000000000000000000000000803", - "repr": "u2051" - }, - "tx": { - "tx_id": "0x12e6f88724d0e630de26c376f172cf1781e25435e2b4ee54d36a949b244e429c", - "nonce": 7, - "fee_rate": "812000", - "sender_address": "SP3BK1NNSWN719Z6KDW05RBGVS940YCN6X84STYPR", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "100000000", - "principal": { - "type_id": "principal_standard", - "address": "SP3BK1NNSWN719Z6KDW05RBGVS940YCN6X84STYPR" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0x8a809916e35577337c3f9812a57d61666fde63932b1bdd1c4d1e2f24fb72d46c", - "parent_block_hash": "0xacf8dd56e08bd7986a5bae5e0f13d8dca8cb3a2dc5a1c4d739fda3b3b378b01d", - "block_height": 36442, - "burn_block_time": 1635994340, - "burn_block_time_iso": "2021-11-04T02:52:20.000Z", - "parent_burn_block_time": 1635994054, - "parent_burn_block_time_iso": "2021-11-04T02:47:34.000Z", - "canonical": true, - "tx_index": 4, - "tx_status": "success", - "tx_result": { - "hex": "0x070100000000000000000000000000000803", - "repr": "(ok u2051)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 14, - "execution_cost_read_length": 91190, - "execution_cost_runtime": 92297000, - "execution_cost_write_count": 3, - "execution_cost_write_length": 19, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-holding-1-tx-metadata.schema.json b/docs/entities/tokens/non-fungible-token-holding-1-tx-metadata.schema.json deleted file mode 100644 index eeb90f2bb..000000000 --- a/docs/entities/tokens/non-fungible-token-holding-1-tx-metadata.schema.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenHoldingWithTxMetadata", - "description": "Ownership of a Non-Fungible Token with transaction metadata", - "required": ["asset_identifier", "value", "tx", "block_height"], - "additionalProperties": false, - "properties": { - "asset_identifier": { - "type": "string" - }, - "value": { - "type": "object", - "required": ["hex", "repr"], - "description": "Non-Fungible Token value", - "additionalProperties": false, - "properties": { - "hex": { - "type": "string", - "description": "Hex string representing the identifier of the Non-Fungible Token" - }, - "repr": { - "type": "string", - "description": "Readable string of the Non-Fungible Token identifier" - } - } - }, - "block_height": { - "type": "number" - }, - "tx": { - "$ref": "../transactions/transaction.schema.json" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-holding.schema.json b/docs/entities/tokens/non-fungible-token-holding.schema.json deleted file mode 100644 index 6106a5254..000000000 --- a/docs/entities/tokens/non-fungible-token-holding.schema.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenHolding", - "description": "Describes the ownership of a Non-Fungible Token", - "additionalProperties": false, - "anyOf": [ - { - "$ref": "./non-fungible-token-holding-0-tx-id.schema.json" - }, - { - "$ref": "./non-fungible-token-holding-1-tx-metadata.schema.json" - } - ] -} diff --git a/docs/entities/tokens/non-fungible-token-mint-0-tx-id.example.schema.json b/docs/entities/tokens/non-fungible-token-mint-0-tx-id.example.schema.json deleted file mode 100644 index 4d31729a9..000000000 --- a/docs/entities/tokens/non-fungible-token-mint-0-tx-id.example.schema.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "recipient": "SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009c7", - "repr": "u2503" - }, - "tx_id": "0xd5c199447bc5f08d1821350455f4c103ad769976c7a6b745182782d53b5c7922" -} diff --git a/docs/entities/tokens/non-fungible-token-mint-0-tx-id.schema.json b/docs/entities/tokens/non-fungible-token-mint-0-tx-id.schema.json deleted file mode 100644 index f72676090..000000000 --- a/docs/entities/tokens/non-fungible-token-mint-0-tx-id.schema.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenMintWithTxId", - "description": "Non-Fungible Token mint event with transaction id", - "required": ["event_index", "value", "tx_id"], - "additionalProperties": false, - "properties": { - "recipient": { - "type": "string" - }, - "event_index": { - "type": "integer" - }, - "value": { - "type": "object", - "required": ["hex", "repr"], - "description": "Non-Fungible Token value", - "additionalProperties": false, - "properties": { - "hex": { - "type": "string", - "description": "Hex string representing the identifier of the Non-Fungible Token" - }, - "repr": { - "type": "string", - "description": "Readable string of the Non-Fungible Token identifier" - } - } - }, - "tx_id": { - "type": "string" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-mint-1-tx-metadata.example.schema.json b/docs/entities/tokens/non-fungible-token-mint-1-tx-metadata.example.schema.json deleted file mode 100644 index a3186ce6d..000000000 --- a/docs/entities/tokens/non-fungible-token-mint-1-tx-metadata.example.schema.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "recipient": "SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G", - "event_index": 1, - "value": { - "hex": "0x01000000000000000000000000000009c7", - "repr": "u2503" - }, - "tx": { - "tx_id": "0xd5c199447bc5f08d1821350455f4c103ad769976c7a6b745182782d53b5c7922", - "nonce": 4, - "fee_rate": "81200", - "sender_address": "SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G", - "sponsored": false, - "post_condition_mode": "deny", - "post_conditions": [ - { - "type": "stx", - "condition_code": "sent_equal_to", - "amount": "100000000", - "principal": { - "type_id": "principal_standard", - "address": "SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G" - } - } - ], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0xde60b4b100b1828dc6383db869b1e051fe68ac3fb0a72fffaae1b18af3e3c675", - "parent_block_hash": "0xe90233fb36b6a932de91af1b030723ca71335eed7b0792f2c382a827beb5c2f3", - "block_height": 36777, - "burn_block_time": 1636213080, - "burn_block_time_iso": "2021-11-06T15:38:00.000Z", - "parent_burn_block_time": 1636211530, - "parent_burn_block_time_iso": "2021-11-06T15:12:10.000Z", - "canonical": true, - "tx_index": 11, - "tx_status": "success", - "tx_result": { - "hex": "0x0701000000000000000000000000000009c7", - "repr": "(ok u2503)" - }, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 2, - "events": [], - "execution_cost_read_count": 14, - "execution_cost_read_length": 91190, - "execution_cost_runtime": 92297000, - "execution_cost_write_count": 3, - "execution_cost_write_length": 19, - "tx_type": "contract_call", - "contract_call": { - "contract_id": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild-mint", - "function_name": "claim", - "function_signature": "(define-public (claim ))" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-mint-1-tx-metadata.schema.json b/docs/entities/tokens/non-fungible-token-mint-1-tx-metadata.schema.json deleted file mode 100644 index 781d921a6..000000000 --- a/docs/entities/tokens/non-fungible-token-mint-1-tx-metadata.schema.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenMintWithTxMetadata", - "description": "Non-Fungible Token mint event with transaction metadata", - "required": ["event_index", "value", "tx"], - "additionalProperties": false, - "properties": { - "recipient": { - "type": "string" - }, - "event_index": { - "type": "integer" - }, - "value": { - "type": "object", - "required": ["hex", "repr"], - "description": "Non-Fungible Token value", - "additionalProperties": false, - "properties": { - "hex": { - "type": "string", - "description": "Hex string representing the identifier of the Non-Fungible Token" - }, - "repr": { - "type": "string", - "description": "Readable string of the Non-Fungible Token identifier" - } - } - }, - "tx": { - "$ref": "../transactions/transaction.schema.json" - } - } -} diff --git a/docs/entities/tokens/non-fungible-token-mint.schema.json b/docs/entities/tokens/non-fungible-token-mint.schema.json deleted file mode 100644 index 3839432ae..000000000 --- a/docs/entities/tokens/non-fungible-token-mint.schema.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "object", - "title": "NonFungibleTokenMint", - "description": "Describes the minting of a Non-Fungible Token", - "additionalProperties": false, - "anyOf": [ - { - "$ref": "./non-fungible-token-mint-0-tx-id.schema.json" - }, - { - "$ref": "./non-fungible-token-mint-1-tx-metadata.schema.json" - } - ] -} diff --git a/docs/entities/transaction-events/abstract-transaction-event.schema.json b/docs/entities/transaction-events/abstract-transaction-event.schema.json deleted file mode 100644 index fb1848987..000000000 --- a/docs/entities/transaction-events/abstract-transaction-event.schema.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "AbstractTransactionEvent", - "type": "object", - "required": ["event_index"], - "additionalProperties": false, - "properties": { - "event_index": { - "type": "integer" - } - } -} diff --git a/docs/entities/transaction-events/asset-types/transaction-event-asset-type.schema.json b/docs/entities/transaction-events/asset-types/transaction-event-asset-type.schema.json deleted file mode 100644 index 19ec96d68..000000000 --- a/docs/entities/transaction-events/asset-types/transaction-event-asset-type.schema.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "title": "TransactionEventAssetType", - "type": "string", - "enum": ["transfer", "mint", "burn"] -} diff --git a/docs/entities/transaction-events/asset-types/transaction-event-asset.schema.json b/docs/entities/transaction-events/asset-types/transaction-event-asset.schema.json deleted file mode 100644 index 3b98960b5..000000000 --- a/docs/entities/transaction-events/asset-types/transaction-event-asset.schema.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "object", - "title": "TransactionEventAsset", - "additionalProperties": false, - "properties": { - "asset_event_type": { - "$ref": "./transaction-event-asset-type.schema.json" - }, - "asset_id": { - "type": "string" - }, - "sender": { - "type": "string" - }, - "recipient": { - "type": "string" - }, - "amount": { - "type": "string" - }, - "value": { - "type": "string" - }, - "memo": { - "type": "string" - } - } -} diff --git a/docs/entities/transaction-events/transaction-event-fungible-asset.schema.json b/docs/entities/transaction-events/transaction-event-fungible-asset.schema.json deleted file mode 100644 index 2188f7f19..000000000 --- a/docs/entities/transaction-events/transaction-event-fungible-asset.schema.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "type": "object", - "title": "TransactionEventFungibleAsset", - "allOf": [ - { - "$ref": "./abstract-transaction-event.schema.json" - }, - { - "type": "object", - "required": ["event_type", "tx_id", "asset"], - "additionalProperties": false, - "properties": { - "event_type": { - "type": "string", - "enum": ["fungible_token_asset"] - }, - "tx_id": { - "type": "string" - }, - "asset": { - "type": "object", - "additionalProperties": false, - "required": ["asset_event_type", "asset_id", "sender", "recipient", "amount"], - "properties": { - "asset_event_type": { - "type": "string" - }, - "asset_id": { - "type": "string" - }, - "sender": { - "type": "string" - }, - "recipient": { - "type": "string" - }, - "amount": { - "type": "string" - } - } - } - } - } - ] -} diff --git a/docs/entities/transaction-events/transaction-event-non-fungible-asset.schema.json b/docs/entities/transaction-events/transaction-event-non-fungible-asset.schema.json deleted file mode 100644 index ac636e6de..000000000 --- a/docs/entities/transaction-events/transaction-event-non-fungible-asset.schema.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "type": "object", - "title": "TransactionEventNonFungibleAsset", - "allOf": [ - { - "$ref": "./abstract-transaction-event.schema.json" - }, - { - "type": "object", - "required": ["event_type", "tx_id", "asset"], - "additionalProperties": false, - "properties": { - "event_type": { - "type": "string", - "enum": ["non_fungible_token_asset"] - }, - "tx_id": { - "type": "string" - }, - "asset": { - "type": "object", - "additionalProperties": false, - "required": ["asset_event_type", "asset_id", "sender", "recipient", "value"], - "properties": { - "asset_event_type": { - "type": "string" - }, - "asset_id": { - "type": "string" - }, - "sender": { - "type": "string" - }, - "recipient": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": false, - "required": ["hex", "repr"], - "properties": { - "hex": { - "type": "string" - }, - "repr": { - "type": "string" - } - } - } - } - } - } - } - ] -} diff --git a/docs/entities/transaction-events/transaction-event-smart-contract-log.example.json b/docs/entities/transaction-events/transaction-event-smart-contract-log.example.json deleted file mode 100644 index 76ab78c12..000000000 --- a/docs/entities/transaction-events/transaction-event-smart-contract-log.example.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "limit": 20, - "offset": 0, - "results": [ - { - "event_index": 1, - "event_type": "smart_contract_log", - "contract_log": { - "contract_id": "ST2P7B9G6Y55QWZJ9B93DVSEG5S6Z4PFJHB3XRKHW.hello_world", - "topic": "print", - "value": { - "hex": "0x02000000124576656e74212048656c6c6f20776f726c64", - "repr": "\"Event! Hello world\"" - } - } - } - ] -} diff --git a/docs/entities/transaction-events/transaction-event-smart-contract-log.schema.json b/docs/entities/transaction-events/transaction-event-smart-contract-log.schema.json deleted file mode 100644 index adc613de3..000000000 --- a/docs/entities/transaction-events/transaction-event-smart-contract-log.schema.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "type": "object", - "title": "TransactionEventSmartContractLog", - "description": "Only present in `smart_contract` and `contract_call` tx types.", - "allOf": [ - { - "$ref": "./abstract-transaction-event.schema.json" - }, - { - "type": "object", - "required": ["event_type", "tx_id", "contract_log"], - "additionalProperties": false, - "properties": { - "event_type": { - "type": "string", - "enum": ["smart_contract_log"] - }, - "tx_id": { - "type": "string" - }, - "contract_log": { - "type": "object", - "additionalProperties": false, - "required": ["contract_id", "topic", "value"], - "properties": { - "contract_id": { - "type": "string" - }, - "topic": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": false, - "required": ["hex", "repr"], - "properties": { - "hex": { - "type": "string" - }, - "repr": { - "type": "string" - } - } - } - } - } - } - } - ] -} diff --git a/docs/entities/transaction-events/transaction-event-stx-asset.schema.json b/docs/entities/transaction-events/transaction-event-stx-asset.schema.json deleted file mode 100644 index 94b6d0e4a..000000000 --- a/docs/entities/transaction-events/transaction-event-stx-asset.schema.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "object", - "title": "TransactionEventStxAsset", - "description": "Only present in `smart_contract` and `contract_call` tx types.", - "allOf": [ - { - "$ref": "./abstract-transaction-event.schema.json" - }, - { - "type": "object", - "required": ["event_type", "tx_id", "asset"], - "additionalProperties": false, - "properties": { - "event_type": { - "type": "string", - "enum": ["stx_asset"] - }, - "tx_id": { - "type": "string" - }, - "asset": { - "$ref": "./asset-types/transaction-event-asset.schema.json" - } - } - } - ] -} diff --git a/docs/entities/transaction-events/transaction-event-stx-lock.schema.json b/docs/entities/transaction-events/transaction-event-stx-lock.schema.json deleted file mode 100644 index 5fde8b9c3..000000000 --- a/docs/entities/transaction-events/transaction-event-stx-lock.schema.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "type": "object", - "title": "TransactionEventStxLock", - "description": "Only present in `smart_contract` and `contract_call` tx types.", - "allOf": [ - { - "$ref": "./abstract-transaction-event.schema.json" - }, - { - "type": "object", - "required": ["event_type", "tx_id", "stx_lock_event"], - "additionalProperties": false, - "properties": { - "event_type": { - "type": "string", - "enum": ["stx_lock"] - }, - "tx_id": { - "type": "string" - }, - "stx_lock_event": { - "type": "object", - "additionalProperties": false, - "required": ["locked_amount", "unlock_height", "locked_address"], - "properties": { - "locked_amount": { - "type": "string" - }, - "unlock_height": { - "type": "integer" - }, - "locked_address": { - "type": "string" - } - } - } - } - } - ] -} diff --git a/docs/entities/transaction-events/transaction-event-type.schema.json b/docs/entities/transaction-events/transaction-event-type.schema.json deleted file mode 100644 index 9d6c313d7..000000000 --- a/docs/entities/transaction-events/transaction-event-type.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "TransactionEventType", - "description": "Events types", - "type": "string", - "enum": ["smart_contract_log", "stx_lock", "stx_asset", "fungible_token_asset", "non_fungible_token_asset"] -} diff --git a/docs/entities/transaction-events/transaction-event.schema.json b/docs/entities/transaction-events/transaction-event.schema.json deleted file mode 100644 index fc5a4e31d..000000000 --- a/docs/entities/transaction-events/transaction-event.schema.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "object", - "title": "TransactionEvent", - "anyOf": [ - { - "$ref": "./transaction-event-smart-contract-log.schema.json" - }, - { - "$ref": "./transaction-event-stx-lock.schema.json" - }, - { - "$ref": "./transaction-event-stx-asset.schema.json" - }, - { - "$ref": "./transaction-event-fungible-asset.schema.json" - }, - { - "$ref": "./transaction-event-non-fungible-asset.schema.json" - } - ] -} diff --git a/docs/entities/transactions/abstract-transaction.schema.json b/docs/entities/transactions/abstract-transaction.schema.json deleted file mode 100644 index d3b6365d9..000000000 --- a/docs/entities/transactions/abstract-transaction.schema.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "title": "AbstractTransaction", - "description": "Anchored transaction metadata. All mined/anchored Stacks transactions have these properties.", - "type": "object", - "allOf": [ - { - "$ref": "./base-transaction.schema.json" - }, - { - "required": [ - "tx_index", - "block_hash", - "block_height", - "block_time", - "block_time_iso", - "burn_block_height", - "burn_block_time", - "burn_block_time_iso", - "parent_burn_block_time", - "parent_burn_block_time_iso", - "canonical", - "tx_status", - "tx_result", - "events", - "event_count", - "parent_block_hash", - "is_unanchored", - "microblock_hash", - "microblock_sequence", - "microblock_canonical", - "execution_cost_read_count", - "execution_cost_read_length", - "execution_cost_runtime", - "execution_cost_write_count", - "execution_cost_write_length" - ], - "additionalProperties": false, - "properties": { - "block_hash": { - "type": "string", - "description": "Hash of the blocked this transactions was associated with" - }, - "block_height": { - "type": "integer", - "description": "Height of the block this transactions was associated with" - }, - "block_time": { - "type": "number", - "description": "Unix timestamp (in seconds) indicating when this block was mined." - }, - "block_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined." - }, - "burn_block_height": { - "type": "integer", - "description": "Height of the anchor burn block." - }, - "burn_block_time": { - "type": "integer", - "description": "Unix timestamp (in seconds) indicating when this block was mined" - }, - "burn_block_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined." - }, - "parent_burn_block_time": { - "type": "integer", - "description": "Unix timestamp (in seconds) indicating when this parent block was mined" - }, - "parent_burn_block_time_iso": { - "type": "string", - "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined." - }, - "canonical": { - "type": "boolean", - "description": "Set to `true` if block corresponds to the canonical chain tip" - }, - "tx_index": { - "type": "integer", - "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction" - }, - "tx_status": { - "$ref": "./transaction-status.schema.json" - }, - "tx_result": { - "type": "object", - "required": ["hex", "repr"], - "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", - "additionalProperties": false, - "properties": { - "hex": { - "type": "string", - "description": "Hex string representing the value fo the transaction result" - }, - "repr": { - "type": "string", - "description": "Readable string of the transaction result" - } - } - }, - "event_count": { - "type": "integer", - "description": "Number of transaction events" - }, - "parent_block_hash": { - "type": "string", - "description": "Hash of the previous block." - }, - "is_unanchored": { - "type": "boolean", - "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block." - }, - "microblock_hash": { - "type": "string", - "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string." - }, - "microblock_sequence": { - "type": "integer", - "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index)." - }, - "microblock_canonical": { - "type": "boolean", - "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork." - }, - "execution_cost_read_count": { - "type": "integer", - "description": "Execution cost read count." - }, - "execution_cost_read_length": { - "type": "integer", - "description": "Execution cost read length." - }, - "execution_cost_runtime": { - "type": "integer", - "description": "Execution cost runtime." - }, - "execution_cost_write_count": { - "type": "integer", - "description": "Execution cost write count." - }, - "execution_cost_write_length": { - "type": "integer", - "description": "Execution cost write length." - }, - "events" : { - "type": "array", - "description": "List of transaction events", - "items": { - "$ref": "../transaction-events/transaction-event.schema.json" - } - } - } - } - ] -} diff --git a/docs/entities/transactions/anchor-mode.schema.json b/docs/entities/transactions/anchor-mode.schema.json deleted file mode 100644 index 0a21205dd..000000000 --- a/docs/entities/transactions/anchor-mode.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "TransactionAnchorModeType", - "type": "string", - "enum": ["on_chain_only", "off_chain_only", "any"], - "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction." -} diff --git a/docs/entities/transactions/base-transaction.schema.json b/docs/entities/transactions/base-transaction.schema.json deleted file mode 100644 index 15e48048f..000000000 --- a/docs/entities/transactions/base-transaction.schema.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "title": "BaseTransaction", - "description": "Transaction properties that are available from a raw serialized transactions. These are available for transactions in the mempool as well as mined transactions.", - "type": "object", - "required": [ - "tx_id", - "nonce", - "fee_rate", - "sender_address", - "sponsored", - "post_condition_mode", - "post_conditions", - "anchor_mode" - ], - "additionalProperties": false, - "properties": { - "tx_id": { - "type": "string", - "description": "Transaction ID" - }, - "nonce": { - "type": "integer", - "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on." - }, - "fee_rate": { - "type": "string", - "description": "Transaction fee as Integer string (64-bit unsigned integer)." - }, - "sender_address": { - "type": "string", - "description": "Address of the transaction initiator" - }, - "sponsor_nonce": { - "type": "integer" - }, - "sponsored": { - "type": "boolean", - "description": "Denotes whether the originating account is the same as the paying account" - }, - "sponsor_address": { - "type": "string" - }, - "post_condition_mode": { - "$ref": "../post-conditions/post-condition-mode.schema.json" - }, - "post_conditions": { - "type": "array", - "items": { - "$ref": "../post-conditions/post-condition.schema.json" - } - }, - "anchor_mode": { - "$ref": "./anchor-mode.schema.json" - } - } -} diff --git a/docs/entities/transactions/transaction-0-token-transfer-metadata.schema.json b/docs/entities/transactions/transaction-0-token-transfer-metadata.schema.json deleted file mode 100644 index b5cc2a845..000000000 --- a/docs/entities/transactions/transaction-0-token-transfer-metadata.schema.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "title": "TokenTransferTransactionMetadata", - "description": "Metadata associated with token-transfer type transactions", - "type": "object", - "required": ["tx_type", "token_transfer"], - "additionalProperties": false, - "properties": { - "tx_type": { - "type": "string", - "enum": ["token_transfer"] - }, - "token_transfer": { - "type": "object", - "required": ["recipient_address", "amount", "memo"], - "additionalProperties": false, - "properties": { - "recipient_address": { - "type": "string" - }, - "amount": { - "type": "string", - "description": "Transfer amount as Integer string (64-bit unsigned integer)" - }, - "memo": { - "type": "string", - "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)" - } - } - } - } -} diff --git a/docs/entities/transactions/transaction-0-token-transfer.example.json b/docs/entities/transactions/transaction-0-token-transfer.example.json deleted file mode 100644 index ef7c975c9..000000000 --- a/docs/entities/transactions/transaction-0-token-transfer.example.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "tx_id": "0x19e25515652dad41ef675bd0670964e3d537b80ec19cf6ca6f1dd65d5bc642c6", - "tx_status": "success", - "tx_type": "token_transfer", - "fee_rate": "180", - "sender_address": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1", - "sponsored": false, - "post_condition_mode": "deny", - "is_unanchored": false, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "block_hash": "0x9080f6df3e0be0d6de67569330e547346a44c8ecd30d9d76b5edd1b49e2c22f6", - "block_height": 3190, - "burn_block_time": 1594227992, - "canonical": true, - "tx_index": 1, - "token_transfer": { - "recipient_address": "ST1RZG804V6Y0N4XHQD3ZE2GE3XSCV3VHRKMA3GB0", - "amount": "10000", - "memo": "0x00000000000000000000000000000000000000000000000000000000000000000000" - }, - "events": [ - { - "event_index": 0, - "event_type": "stx_asset", - "asset": { - "asset_event_type": "transfer", - "sender": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1", - "recipient": "ST1RZG804V6Y0N4XHQD3ZE2GE3XSCV3VHRKMA3GB0", - "amount": "10000" - } - } - ] -} diff --git a/docs/entities/transactions/transaction-0-token-transfer.schema.json b/docs/entities/transactions/transaction-0-token-transfer.schema.json deleted file mode 100644 index 018e919c8..000000000 --- a/docs/entities/transactions/transaction-0-token-transfer.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "TokenTransferTransaction", - "description": "Describes representation of a Type-0 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-0-transferring-an-asset", - "type": "object", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "./transaction-0-token-transfer-metadata.schema.json" - } - ] -} diff --git a/docs/entities/transactions/transaction-1-smart-contract-metadata.schema.json b/docs/entities/transactions/transaction-1-smart-contract-metadata.schema.json deleted file mode 100644 index a5d8898e5..000000000 --- a/docs/entities/transactions/transaction-1-smart-contract-metadata.schema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "object", - "title": "SmartContractTransactionMetadata", - "description": "Metadata associated with a contract-deploy type transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-1-instantiating-a-smart-contract", - "required": ["tx_type", "smart_contract"], - "additionalProperties": false, - "properties": { - "tx_type": { - "type": "string", - "enum": ["smart_contract"] - }, - "smart_contract": { - "type": "object", - "additionalProperties": false, - "required": ["contract_id", "source_code"], - "properties": { - "clarity_version": { - "type": "number", - "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", - "nullable": true - }, - "contract_id": { - "type": "string", - "description": "Contract identifier formatted as `.`" - }, - "source_code": { - "type": "string", - "description": "Clarity code of the smart contract being deployed" - } - } - } - } -} diff --git a/docs/entities/transactions/transaction-1-smart-contract.example.json b/docs/entities/transactions/transaction-1-smart-contract.example.json deleted file mode 100644 index 705dfeb68..000000000 --- a/docs/entities/transactions/transaction-1-smart-contract.example.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "tx_id": "0x8122b7ae041120ddc9e2f8108e165912e40ad146399d42d6e6cbca7fd2c8ac28", - "tx_status": "success", - "tx_type": "smart_contract", - "fee_rate": "3000", - "sender_address": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1", - "sponsored": false, - "post_condition_mode": "allow", - "is_unanchored": false, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "block_hash": "0x105685d3d4f251d73b75865b192cefb111dd49f67b8970a95094dc7ecf826caa", - "block_height": 3196, - "burn_block_time": 1594228322, - "canonical": true, - "tx_index": 1, - "post_conditions": [], - "smart_contract": { - "contract_id": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1.hello_world", - "source_code": "(define-constant sender 'SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR)\n(define-constant recipient 'SM2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQVX8X0G)\n\n(define-fungible-token novel-token-19)\n(begin (ft-mint? novel-token-19 u12 sender))\n(begin (ft-transfer? novel-token-19 u2 sender recipient))\n\n(define-non-fungible-token hello-nft uint)\n(begin (nft-mint? hello-nft u1 sender))\n(begin (nft-mint? hello-nft u2 sender))\n(begin (nft-transfer? hello-nft u1 sender recipient))\n\n(define-public (test-emit-event)\n (begin\n (print \"Event! Hello world\")\n (ok u1)))\n(begin (test-emit-event))\n\n(define-public (test-event-types)\n (begin\n (unwrap-panic (ft-mint? novel-token-19 u3 recipient))\n (unwrap-panic (nft-mint? hello-nft u2 recipient))\n (unwrap-panic (stx-transfer? u60 tx-sender 'SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR))\n (unwrap-panic (stx-burn? u20 tx-sender))\n (ok u1)))\n\n(define-map store ((key (buff 32))) ((value (buff 32))))\n(define-public (get-value (key (buff 32)))\n (begin\n (match (map-get? store ((key key)))\n entry (ok (get value entry))\n (err 0))))\n(define-public (set-value (key (buff 32)) (value (buff 32)))\n (begin\n (map-set store ((key key)) ((value value)))\n (ok u1)))" - }, - "events": [ - { - "event_index": 0, - "event_type": "fungible_token_asset", - "asset": { - "asset_event_type": "mint", - "asset_id": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1.hello_world::novel-token-19", - "sender": "", - "recipient": "SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR", - "amount": "12" - } - }, - { - "event_index": 1, - "event_type": "non_fungible_token_asset", - "asset": { - "asset_event_type": "mint", - "asset_id": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1.hello_world::hello-nft", - "sender": "", - "recipient": "SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR", - "value": { - "hex": "0x0100000000000000000000000000000001", - "repr": "1" - } - } - }, - { - "event_index": 2, - "event_type": "non_fungible_token_asset", - "asset": { - "asset_event_type": "mint", - "asset_id": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1.hello_world::hello-nft", - "sender": "", - "recipient": "SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR", - "value": { - "hex": "0x0100000000000000000000000000000002", - "repr": "2" - } - } - }, - { - "event_index": 3, - "event_type": "smart_contract_log", - "contract_log": { - "contract_id": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1.hello_world", - "topic": "print", - "value": { - "hex": "0x02000000124576656e74212048656c6c6f20776f726c64", - "repr": "\"Event! Hello world\"" - } - } - }, - { - "event_index": 4, - "event_type": "fungible_token_asset", - "asset": { - "asset_event_type": "transfer", - "asset_id": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1.hello_world::novel-token-19", - "sender": "SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR", - "recipient": "SM2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQVX8X0G", - "amount": "2" - } - }, - { - "event_index": 5, - "event_type": "non_fungible_token_asset", - "asset": { - "asset_event_type": "transfer", - "asset_id": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1.hello_world::hello-nft", - "sender": "SZ2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQ9H6DPR", - "recipient": "SM2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKQVX8X0G", - "value": { - "hex": "0x0100000000000000000000000000000001", - "repr": "1" - } - } - } - ] -} diff --git a/docs/entities/transactions/transaction-1-smart-contract.schema.json b/docs/entities/transactions/transaction-1-smart-contract.schema.json deleted file mode 100644 index 248c06778..000000000 --- a/docs/entities/transactions/transaction-1-smart-contract.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "SmartContractTransaction", - "description": "Describes representation of a Type-1 Stacks 2.0 transaction. https://github.com/blockstack/stacks-blockchain/blob/master/sip/sip-005-blocks-and-transactions.md#type-1-instantiating-a-smart-contract", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "./transaction-1-smart-contract-metadata.schema.json" - } - ] -} diff --git a/docs/entities/transactions/transaction-2-contract-call-metadata.schema.json b/docs/entities/transactions/transaction-2-contract-call-metadata.schema.json deleted file mode 100644 index 0ad1b7cb7..000000000 --- a/docs/entities/transactions/transaction-2-contract-call-metadata.schema.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "type": "object", - "title": "ContractCallTransactionMetadata", - "description": "Metadata associated with a contract-call type transaction", - "required": ["tx_type", "contract_call"], - "additionalProperties": false, - "properties": { - "tx_type": { - "type": "string", - "enum": ["contract_call"] - }, - "contract_call": { - "type": "object", - "additionalProperties": false, - "required": ["contract_id", "function_name", "function_signature"], - "properties": { - "contract_id": { - "type": "string", - "description": "Contract identifier formatted as `.`" - }, - "function_name": { - "type": "string", - "description": "Name of the Clarity function to be invoked" - }, - "function_signature": { - "type": "string", - "description": "Function definition, including function name and type as well as parameter names and types" - }, - "function_args": { - "type": "array", - "description": "List of arguments used to invoke the function", - "items": { - "type": "object", - "additionalProperties": false, - "required": ["hex", "repr", "name", "type"], - "properties": { - "hex": { - "type": "string" - }, - "repr": { - "type": "string" - }, - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - } - } - } - } - } - } -} diff --git a/docs/entities/transactions/transaction-2-contract-call.example.json b/docs/entities/transactions/transaction-2-contract-call.example.json deleted file mode 100644 index 3857c507c..000000000 --- a/docs/entities/transactions/transaction-2-contract-call.example.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "tx_id": "0xb88e97c8b86124a298de9e02bfb0551a977f09769624bd8e6d659a157a695e9f", - "tx_status": "success", - "tx_type": "contract_call", - "fee_rate": "1000", - "sender_address": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1", - "sponsored": false, - "post_condition_mode": "allow", - "is_unanchored": false, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "block_hash": "0x196f4bef47694eabe72e6278913fa464916ec2e3f6bbfa5abc81347379382a39", - "block_height": 3201, - "burn_block_time": 1594228593, - "canonical": true, - "tx_index": 1, - "post_conditions": [], - "contract_call": { - "contract_id": "STJTXEJPJPPVDNA9B052NSRRBGQCFNKVS178VGH1.hello_world", - "function_name": "set-value", - "function_signature": "(define-public (set-value (key (buff 32)) (value (buff 32))))", - "function_args": [ - { - "hex": "0x0200000003666f6f", - "repr": "\"foo\"", - "name": "key", - "type": "(buff 32)" - }, - { - "hex": "0x0200000003626172", - "repr": "\"bar\"", - "name": "value", - "type": "(buff 32)" - } - ] - }, - "events": [] -} diff --git a/docs/entities/transactions/transaction-2-contract-call.schema.json b/docs/entities/transactions/transaction-2-contract-call.schema.json deleted file mode 100644 index 3c3c0cf3e..000000000 --- a/docs/entities/transactions/transaction-2-contract-call.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "ContractCallTransaction", - "description": "Describes representation of a Type 2 Stacks 2.0 transaction: Contract Call", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "./transaction-2-contract-call-metadata.schema.json" - } - ] -} diff --git a/docs/entities/transactions/transaction-3-poison-microblock-metadata.schema.json b/docs/entities/transactions/transaction-3-poison-microblock-metadata.schema.json deleted file mode 100644 index db48a422b..000000000 --- a/docs/entities/transactions/transaction-3-poison-microblock-metadata.schema.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "object", - "title": "PoisonMicroblockTransactionMetadata", - "description": "Metadata associated with a poison-microblock type transaction", - "required": ["tx_type", "poison_microblock"], - "additionalProperties": false, - "properties": { - "tx_type": { - "type": "string", - "enum": ["poison_microblock"] - }, - "poison_microblock": { - "type": "object", - "required": ["microblock_header_1", "microblock_header_2"], - "additionalProperties": false, - "properties": { - "microblock_header_1": { - "type": "string", - "description": "Hex encoded microblock header" - }, - "microblock_header_2": { - "type": "string", - "description": "Hex encoded microblock header" - } - } - } - } -} diff --git a/docs/entities/transactions/transaction-3-poison-microblock.schema.json b/docs/entities/transactions/transaction-3-poison-microblock.schema.json deleted file mode 100644 index fffa51195..000000000 --- a/docs/entities/transactions/transaction-3-poison-microblock.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "PoisonMicroblockTransaction", - "description": "Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "./transaction-3-poison-microblock-metadata.schema.json" - } - ] -} diff --git a/docs/entities/transactions/transaction-4-coinbase-metadata.schema.json b/docs/entities/transactions/transaction-4-coinbase-metadata.schema.json deleted file mode 100644 index d79a045b1..000000000 --- a/docs/entities/transactions/transaction-4-coinbase-metadata.schema.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "object", - "title": "CoinbaseTransactionMetadata", - "description": "Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock", - "required": ["tx_type", "coinbase_payload"], - "additionalProperties": false, - "properties": { - "tx_type": { - "type": "string", - "enum": ["coinbase"] - }, - "coinbase_payload": { - "type": "object", - "additionalProperties": false, - "required": ["data"], - "properties": { - "data": { - "type": "string", - "description": "Hex encoded 32-byte scratch space for block leader's use" - }, - "alt_recipient": { - "type": "string", - "nullable": true, - "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null." - }, - "vrf_proof": { - "type": "string", - "nullable": true, - "description": "Hex encoded 80-byte VRF proof" - } - } - } - } -} diff --git a/docs/entities/transactions/transaction-4-coinbase.example.json b/docs/entities/transactions/transaction-4-coinbase.example.json deleted file mode 100644 index 797263ba8..000000000 --- a/docs/entities/transactions/transaction-4-coinbase.example.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "tx_id": "0x5e9f3933e358df6a73fec0d47ce3e1062c20812c129f5294e6f37a8d27c051d9", - "tx_status": "success", - "tx_type": "coinbase", - "fee_rate": "0", - "sender_address": "ST3WCQ6S0DFT7YHF53M8JPKGDS1N1GSSR91677XF1", - "sponsored": false, - "post_condition_mode": "deny", - "is_unanchored": false, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "block_hash": "0x58412b50266debd0c35b1a20348ad9c0f17e5525fb155a97033256c83c9e2491", - "block_height": 3231, - "burn_block_time": 1594230455, - "canonical": true, - "tx_index": 0, - "tx_result": { - "hex": "0x03", - "repr": "true" - }, - "coinbase_payload": { - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - } -} diff --git a/docs/entities/transactions/transaction-4-coinbase.schema.json b/docs/entities/transactions/transaction-4-coinbase.schema.json deleted file mode 100644 index 1472771c3..000000000 --- a/docs/entities/transactions/transaction-4-coinbase.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "CoinbaseTransaction", - "description": "Describes representation of a Type 3 Stacks 2.0 transaction: Poison Microblock", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "./transaction-4-coinbase-metadata.schema.json" - } - ] -} diff --git a/docs/entities/transactions/transaction-7-tenure-change-metadata.schema.json b/docs/entities/transactions/transaction-7-tenure-change-metadata.schema.json deleted file mode 100644 index f6fe5ff83..000000000 --- a/docs/entities/transactions/transaction-7-tenure-change-metadata.schema.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "type": "object", - "title": "TenureChangeTransactionMetadata", - "description": "Describes representation of a Type 7 Stacks transaction: Tenure Change", - "required": ["tx_type"], - "additionalProperties": false, - "properties": { - "tx_type": { - "type": "string", - "enum": ["tenure_change"] - }, - "tenure_change_payload": { - "type": "object", - "additionalProperties": false, - "required": ["tenure_consensus_hash", "prev_tenure_consensus_hash", "burn_view_consensus_hash", "previous_tenure_end", "previous_tenure_blocks", "cause", "pubkey_hash"], - "properties": { - "tenure_consensus_hash": { - "type": "string", - "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen." - }, - "prev_tenure_consensus_hash": { - "type": "string", - "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit." - }, - "burn_view_consensus_hash": { - "type": "string", - "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition." - }, - "previous_tenure_end": { - "type": "string", - "description": "(Hex string) Stacks Block hash" - }, - "previous_tenure_blocks": { - "type": "number", - "description": "The number of blocks produced in the previous tenure." - }, - "cause": { - "type": "string", - "enum": ["block_found", "extended"], - "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended." - }, - "pubkey_hash": { - "type": "string", - "description": "(Hex string) The ECDSA public key hash of the current tenure." - } - } - } - } -} diff --git a/docs/entities/transactions/transaction-7-tenure-change.example.json b/docs/entities/transactions/transaction-7-tenure-change.example.json deleted file mode 100644 index 797263ba8..000000000 --- a/docs/entities/transactions/transaction-7-tenure-change.example.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "tx_id": "0x5e9f3933e358df6a73fec0d47ce3e1062c20812c129f5294e6f37a8d27c051d9", - "tx_status": "success", - "tx_type": "coinbase", - "fee_rate": "0", - "sender_address": "ST3WCQ6S0DFT7YHF53M8JPKGDS1N1GSSR91677XF1", - "sponsored": false, - "post_condition_mode": "deny", - "is_unanchored": false, - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "block_hash": "0x58412b50266debd0c35b1a20348ad9c0f17e5525fb155a97033256c83c9e2491", - "block_height": 3231, - "burn_block_time": 1594230455, - "canonical": true, - "tx_index": 0, - "tx_result": { - "hex": "0x03", - "repr": "true" - }, - "coinbase_payload": { - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - } -} diff --git a/docs/entities/transactions/transaction-7-tenure-change.schema.json b/docs/entities/transactions/transaction-7-tenure-change.schema.json deleted file mode 100644 index 42d2e52e1..000000000 --- a/docs/entities/transactions/transaction-7-tenure-change.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "object", - "title": "TenureChangeTransaction", - "description": "Describes representation of a Type 7 Stacks transaction: Tenure Change", - "allOf": [ - { - "$ref": "./abstract-transaction.schema.json" - }, - { - "$ref": "./transaction-7-tenure-change-metadata.schema.json" - } - ] -} diff --git a/docs/entities/transactions/transaction-found.schema.json b/docs/entities/transactions/transaction-found.schema.json deleted file mode 100644 index ebd6a0100..000000000 --- a/docs/entities/transactions/transaction-found.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "object", - "title": "TransactionFound", - "description": "This object returns transaction for found true", - "additionalProperties": false, - "required": ["found", "result"], - "properties": { - "found": { - "type": "boolean", - "enum": [true] - }, - "result": { - "anyOf":[ - { - "$ref": "../mempool-transactions/transaction.schema.json" - }, - { - "$ref": "./transaction.schema.json" - } - ] - } - } -} diff --git a/docs/entities/transactions/transaction-list.schema.json b/docs/entities/transactions/transaction-list.schema.json deleted file mode 100644 index 5bc96a190..000000000 --- a/docs/entities/transactions/transaction-list.schema.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "object", - "title": "TransactionList", - "additionalProperties": { - "anyOf": [ - { - "$ref": "./transaction-found.schema.json" - }, - { - "$ref": "./transaction-not-found.schema.json" - } - ] - } -} diff --git a/docs/entities/transactions/transaction-metadata.schema.json b/docs/entities/transactions/transaction-metadata.schema.json deleted file mode 100644 index 502f413b5..000000000 --- a/docs/entities/transactions/transaction-metadata.schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "object", - "title": "TransactionMetadata", - "anyOf": [ - { - "$ref": "./transaction-0-token-transfer-metadata.schema.json" - }, - { - "$ref": "./transaction-1-smart-contract-metadata.schema.json" - }, - { - "$ref": "./transaction-2-contract-call-metadata.schema.json" - }, - { - "$ref": "./transaction-3-poison-microblock-metadata.schema.json" - }, - { - "$ref": "./transaction-4-coinbase-metadata.schema.json" - }, - { - "$ref": "./transaction-7-tenure-change-metadata.schema.json" - } - ] -} diff --git a/docs/entities/transactions/transaction-not-found.schema.json b/docs/entities/transactions/transaction-not-found.schema.json deleted file mode 100644 index e6d7f84aa..000000000 --- a/docs/entities/transactions/transaction-not-found.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "object", - "title": "TransactionNotFound", - "description": "This object returns the id for not found transaction", - "additionalProperties": false, - "properties": { - "found": { - "type": "boolean", - "enum": [false] - }, - "result": { - "type": "object", - "required": ["tx_id"], - "additionalProperties": false, - "properties": { - "tx_id": { - "type": "string" - } - } - } - }, - "required": ["found", "result"] -} diff --git a/docs/entities/transactions/transaction-status.schema.json b/docs/entities/transactions/transaction-status.schema.json deleted file mode 100644 index 4d7892f4f..000000000 --- a/docs/entities/transactions/transaction-status.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "TransactionStatus", - "description": "Status of the transaction", - "type": "string", - "enum": ["success", "abort_by_response", "abort_by_post_condition"] -} diff --git a/docs/entities/transactions/transaction-type.schema.json b/docs/entities/transactions/transaction-type.schema.json deleted file mode 100644 index 78026c6a8..000000000 --- a/docs/entities/transactions/transaction-type.schema.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "TransactionType", - "description": "String literal of all Stacks 2.0 transaction types", - "type": "string", - "enum": ["token_transfer", "smart_contract", "contract_call", "poison_microblock", "coinbase", "tenure_change"] -} diff --git a/docs/entities/transactions/transaction.schema.json b/docs/entities/transactions/transaction.schema.json deleted file mode 100644 index 6b07eeefb..000000000 --- a/docs/entities/transactions/transaction.schema.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "object", - "title": "Transaction", - "description": "Describes all transaction types on Stacks 2.0 blockchain", - "anyOf": [ - { - "$ref": "./transaction-0-token-transfer.schema.json" - }, - { - "$ref": "./transaction-1-smart-contract.schema.json" - }, - { - "$ref": "./transaction-2-contract-call.schema.json" - }, - { - "$ref": "./transaction-3-poison-microblock.schema.json" - }, - { - "$ref": "./transaction-4-coinbase.schema.json" - }, - { - "$ref": "./transaction-7-tenure-change.schema.json" - } - ] -} diff --git a/docs/entities/transactions/transactions-list-detail.example.json b/docs/entities/transactions/transactions-list-detail.example.json deleted file mode 100644 index c661eaff6..000000000 --- a/docs/entities/transactions/transactions-list-detail.example.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "0x8911000000000000000000000000000000000000000000000000000000000000": { - "found": true, - "result": { - "tx_id": "0x8911000000000000000000000000000000000000000000000000000000000000", - "nonce": 0, - "fee_rate": "1234", - "sender_address": "sender-addr", - "sponsored": true, - "sponsor_address": "sponsor-addr", - "post_condition_mode": "allow", - "post_conditions": [], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0x0123", - "parent_block_hash": "0x5678", - "block_height": 0, - "burn_block_height": 69287, - "burn_block_time": 39486, - "burn_block_time_iso": "1970-01-01T10:58:06.000Z", - "parent_burn_block_time": 1626122935, - "parent_burn_block_time_iso": "2021-07-12T20:48:55.000Z", - "canonical": true, - "tx_index": 4, - "tx_status": "success", - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 0, - "events": [], - "execution_cost_read_count": 0, - "execution_cost_read_length": 0, - "execution_cost_runtime": 0, - "execution_cost_write_count": 0, - "execution_cost_write_length": 0, - "tx_type": "coinbase" - } - }, - "0x8915000000000000000000000000000000000000000000000000000000000000": { - "found": true, - "result": { - "tx_id": "0x8915000000000000000000000000000000000000000000000000000000000000", - "nonce": 1000, - "fee_rate": "1234", - "sender_address": "sender-addr", - "sponsored": true, - "sponsor_address": "sponsor-addr", - "post_condition_mode": "allow", - "post_conditions": [], - "anchor_mode": "any", - "is_unanchored": false, - "block_hash": "0x0123", - "parent_block_hash": "0x5678", - "block_height": 0, - "burn_block_height": 69287, - "burn_block_time": 39486, - "burn_block_time_iso": "1970-01-01T10:58:06.000Z", - "parent_burn_block_time": 1626122935, - "parent_burn_block_time_iso": "2021-07-12T20:48:55.000Z", - "canonical": true, - "tx_index": 4, - "tx_status": "success", - "microblock_hash": "", - "microblock_sequence": 2147483647, - "microblock_canonical": true, - "event_count": 0, - "events": [], - "execution_cost_read_count": 0, - "execution_cost_read_length": 0, - "execution_cost_runtime": 0, - "execution_cost_write_count": 0, - "execution_cost_write_length": 0, - "tx_type": "coinbase" - } - }, - "0x8912000000000000000000000000000000000000000000000000000000000000": { - "found": true, - "result": { - "tx_id": "0x8912000000000000000000000000000000000000000000000000000000000000", - "nonce": 0, - "fee_rate": "1234", - "sender_address": "sender-addr", - "sponsored": false, - "post_condition_mode": "allow", - "post_conditions": [], - "anchor_mode": "any", - "tx_status": "pending", - "receipt_time": 1594307695, - "receipt_time_iso": "2020-07-09T15:14:55.000Z", - "tx_type": "coinbase" - } - }, - "0x8914000000000000000000000000000000000000000000000000000000000000": { - "found": false, - "result": { - "tx_id": "0x8914000000000000000000000000000000000000000000000000000000000000" - } - } -} diff --git a/docs/entities/transfers/inbound-stx-transfer.example.json b/docs/entities/transfers/inbound-stx-transfer.example.json deleted file mode 100644 index 921a390be..000000000 --- a/docs/entities/transfers/inbound-stx-transfer.example.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "sender": "ST1RZG804V6Y0N4XHQD3ZE2GE3XSCV3VHRKMA3GB0", - "amount": "123456789", - "memo": "0x00000000000000000000000000000000000000000000000000000000000000000000", - "block_height": 12345, - "tx_id": "0x29e25515652dad41ef675bd0670964e3d537b80ec19cf6ca6f1dd65d5bc642c5", - "transfer_type": "bulk-send", - "tx_index": 3 -} diff --git a/docs/entities/transfers/inbound-stx-transfer.schema.json b/docs/entities/transfers/inbound-stx-transfer.schema.json deleted file mode 100644 index 9bda65431..000000000 --- a/docs/entities/transfers/inbound-stx-transfer.schema.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "title": "InboundStxTransfer", - "description": "A inbound STX transfer with a memo", - "type": "object", - "additionalProperties": false, - "required": ["sender", "amount", "memo", "block_height", "tx_id", "transfer_type", "tx_index"], - "properties": { - "sender": { - "type": "string", - "description": "Principal that sent this transfer" - }, - "amount": { - "type": "string", - "description": "Transfer amount in micro-STX as integer string" - }, - "memo": { - "type": "string", - "description": "Hex encoded memo bytes associated with the transfer" - }, - "block_height": { - "type": "number", - "description": "Block height at which this transfer occurred" - }, - "tx_id": { - "type": "string", - "description": "The transaction ID in which this transfer occurred" - }, - "transfer_type": { - "type": "string", - "enum": ["bulk-send", "stx-transfer", "stx-transfer-memo"], - "description": "Indicates if the transfer is from a stx-transfer transaction or a contract-call transaction" - }, - "tx_index": { - "type": "number", - "description": "Index of the transaction within a block" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-address-balance-notification-response.schema.json b/docs/entities/ws-rpc/rpc-address-balance-notification-response.schema.json deleted file mode 100644 index 7ff02f00f..000000000 --- a/docs/entities/ws-rpc/rpc-address-balance-notification-response.schema.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "title": "RpcAddressBalanceNotificationResponse", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "method": { - "type": "string", - "enum": ["address_balance_update"] - }, - "params": { - "title": "RpcAddressBalanceNotificationParams", - "allOf": [ - { - "type": "object", - "additionalProperties": false, - "required": ["address"], - "properties": { - "address": { - "type": "string" - } - } - }, - { - "$ref": "../../api/address/get-address-stx-balance.schema.json" - } - ] - } - } -} diff --git a/docs/entities/ws-rpc/rpc-address-balance-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-address-balance-subscription-params.schema.json deleted file mode 100644 index ea4405c21..000000000 --- a/docs/entities/ws-rpc/rpc-address-balance-subscription-params.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "title": "RpcAddressBalanceSubscriptionParams", - "description": "", - "type": "object", - "required": [ - "event", - "address" - ], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["address_balance_update"] - }, - "address": { - "type": "string" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-address-balance-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-address-balance-subscription-request.schema.json deleted file mode 100644 index da7f743e5..000000000 --- a/docs/entities/ws-rpc/rpc-address-balance-subscription-request.schema.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "title": "RpcAddressBalanceSubscriptionRequest", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "id", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["address_balance_update"] - }, - "params": { - "$ref": "./rpc-address-balance-subscription-params.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-address-tx-notification-response.schema.json b/docs/entities/ws-rpc/rpc-address-tx-notification-response.schema.json deleted file mode 100644 index 58af8f956..000000000 --- a/docs/entities/ws-rpc/rpc-address-tx-notification-response.schema.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "title": "RpcAddressTxNotificationResponse", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "method": { - "type": "string", - "enum": ["address_tx_update"] - }, - "params": { - "title": "RpcAddressTxNotificationParams", - "allOf": [ - { - "type": "object", - "additionalProperties": false, - "required": ["address", "tx_id", "tx_type", "tx_status"], - "properties": { - "address": { - "type": "string" - }, - "tx_id": { - "type": "string" - }, - "tx_type": { - "$ref": "../transactions/transaction-type.schema.json" - }, - "tx_status": { - "$ref": "../transactions/transaction-status.schema.json" - } - } - }, - { - "$ref": "../../entities/address/transaction-with-transfers.schema.json" - } - ] - } - } -} diff --git a/docs/entities/ws-rpc/rpc-address-tx-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-address-tx-subscription-params.schema.json deleted file mode 100644 index 78157ffa2..000000000 --- a/docs/entities/ws-rpc/rpc-address-tx-subscription-params.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "title": "RpcAddressTxSubscriptionParams", - "description": "", - "type": "object", - "required": [ - "event", - "address" - ], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["address_tx_update"] - }, - "address": { - "type": "string" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-address-tx-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-address-tx-subscription-request.schema.json deleted file mode 100644 index e038991a7..000000000 --- a/docs/entities/ws-rpc/rpc-address-tx-subscription-request.schema.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "title": "RpcAddressTxSubscriptionRequest", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "id", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["address_tx_update"] - }, - "params": { - "$ref": "./rpc-address-tx-subscription-params.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-block-notification-response.schema.json b/docs/entities/ws-rpc/rpc-block-notification-response.schema.json deleted file mode 100644 index 37c51fd52..000000000 --- a/docs/entities/ws-rpc/rpc-block-notification-response.schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "title": "RpcBlockNotificationResponse", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "method": { - "type": "string", - "enum": ["block"] - }, - "params": { - "$ref": "../blocks/block.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-block-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-block-subscription-params.schema.json deleted file mode 100644 index d0c47b9bd..000000000 --- a/docs/entities/ws-rpc/rpc-block-subscription-params.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "RpcBlockSubscriptionParams", - "description": "", - "type": "object", - "required": ["event"], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["block"] - } - } -} diff --git a/docs/entities/ws-rpc/rpc-block-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-block-subscription-request.schema.json deleted file mode 100644 index 4f88ed4e5..000000000 --- a/docs/entities/ws-rpc/rpc-block-subscription-request.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": "RpcBlockSubscriptionRequest", - "description": "", - "type": "object", - "required": ["jsonrpc", "id", "method", "params"], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["block"] - }, - "params": { - "$ref": "./rpc-block-subscription-params.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-mempool-notification-response.schema.json b/docs/entities/ws-rpc/rpc-mempool-notification-response.schema.json deleted file mode 100644 index a418dae4d..000000000 --- a/docs/entities/ws-rpc/rpc-mempool-notification-response.schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "title": "RpcMempoolNotificationResponse", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "method": { - "type": "string", - "enum": ["mempool"] - }, - "params": { - "$ref": "../transactions/transaction.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-mempool-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-mempool-subscription-params.schema.json deleted file mode 100644 index 02e0c1527..000000000 --- a/docs/entities/ws-rpc/rpc-mempool-subscription-params.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "RpcMempoolSubscriptionParams", - "description": "", - "type": "object", - "required": ["event"], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["mempool"] - } - } -} diff --git a/docs/entities/ws-rpc/rpc-mempool-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-mempool-subscription-request.schema.json deleted file mode 100644 index 879376956..000000000 --- a/docs/entities/ws-rpc/rpc-mempool-subscription-request.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": "RpcMempoolSubscriptionRequest", - "description": "", - "type": "object", - "required": ["jsonrpc", "id", "method", "params"], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["mempool"] - }, - "params": { - "$ref": "./rpc-mempool-subscription-params.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-microblock-notification-response.schema.json b/docs/entities/ws-rpc/rpc-microblock-notification-response.schema.json deleted file mode 100644 index eb8e45806..000000000 --- a/docs/entities/ws-rpc/rpc-microblock-notification-response.schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "title": "RpcMicroblockNotificationResponse", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "method": { - "type": "string", - "enum": ["microblock"] - }, - "params": { - "$ref": "../microblocks/microblock.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-microblock-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-microblock-subscription-params.schema.json deleted file mode 100644 index aa3a732a9..000000000 --- a/docs/entities/ws-rpc/rpc-microblock-subscription-params.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "RpcMicroblockSubscriptionParams", - "description": "", - "type": "object", - "required": ["event"], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["microblock"] - } - } -} diff --git a/docs/entities/ws-rpc/rpc-microblock-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-microblock-subscription-request.schema.json deleted file mode 100644 index d3222f4c9..000000000 --- a/docs/entities/ws-rpc/rpc-microblock-subscription-request.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": "RpcMicroblockSubscriptionRequest", - "description": "", - "type": "object", - "required": ["jsonrpc", "id", "method", "params"], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["microblock"] - }, - "params": { - "$ref": "./rpc-microblock-subscription-params.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-nft-asset-event-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-nft-asset-event-subscription-params.schema.json deleted file mode 100644 index 98d3703e3..000000000 --- a/docs/entities/ws-rpc/rpc-nft-asset-event-subscription-params.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": "RpcNftAssetEventSubscriptionParams", - "description": "", - "type": "object", - "required": [ - "event", - "asset_identifier", - "value" - ], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["nft_asset_event"] - }, - "asset_identifier": { - "type": "string" - }, - "value": { - "type": "string" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-nft-asset-event-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-nft-asset-event-subscription-request.schema.json deleted file mode 100644 index 1e8894e73..000000000 --- a/docs/entities/ws-rpc/rpc-nft-asset-event-subscription-request.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": "RpcNftAssetEventSubscriptionRequest", - "description": "", - "type": "object", - "required": ["jsonrpc", "id", "method", "params"], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["nft_asset_event"] - }, - "params": { - "$ref": "./rpc-nft-asset-event-subscription-params.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-nft-collection-event-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-nft-collection-event-subscription-params.schema.json deleted file mode 100644 index 7b54e03fa..000000000 --- a/docs/entities/ws-rpc/rpc-nft-collection-event-subscription-params.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "title": "RpcNftCollectionEventSubscriptionParams", - "description": "", - "type": "object", - "required": [ - "event", - "asset_identifier" - ], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["nft_collection_event"] - }, - "asset_identifier": { - "type": "string" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-nft-collection-event-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-nft-collection-event-subscription-request.schema.json deleted file mode 100644 index c59a4e653..000000000 --- a/docs/entities/ws-rpc/rpc-nft-collection-event-subscription-request.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": "RpcNftCollectionEventSubscriptionRequest", - "description": "", - "type": "object", - "required": ["jsonrpc", "id", "method", "params"], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["nft_collection_event"] - }, - "params": { - "$ref": "./rpc-nft-collection-event-subscription-params.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-nft-event-notification-response.schema.json b/docs/entities/ws-rpc/rpc-nft-event-notification-response.schema.json deleted file mode 100644 index 336294492..000000000 --- a/docs/entities/ws-rpc/rpc-nft-event-notification-response.schema.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "title": "RpcNftEventNotificationResponse", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "method": { - "type": "string", - "enum": ["block"] - }, - "params": { - "$ref": "../nft-events/nft-event.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-nft-event-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-nft-event-subscription-params.schema.json deleted file mode 100644 index da9248cec..000000000 --- a/docs/entities/ws-rpc/rpc-nft-event-subscription-params.schema.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "RpcNftEventSubscriptionParams", - "description": "", - "type": "object", - "required": ["event"], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["nft_event"] - } - } -} diff --git a/docs/entities/ws-rpc/rpc-nft-event-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-nft-event-subscription-request.schema.json deleted file mode 100644 index 3f38796cf..000000000 --- a/docs/entities/ws-rpc/rpc-nft-event-subscription-request.schema.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": "RpcNftEventSubscriptionRequest", - "description": "", - "type": "object", - "required": ["jsonrpc", "id", "method", "params"], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["nft_event"] - }, - "params": { - "$ref": "./rpc-nft-event-subscription-params.schema.json" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-subscription-type.schema.json b/docs/entities/ws-rpc/rpc-subscription-type.schema.json deleted file mode 100644 index e526ac8fc..000000000 --- a/docs/entities/ws-rpc/rpc-subscription-type.schema.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title": "RpcSubscriptionType", - "description": "", - "type": "string", - "enum": [ - "tx_update", - "address_tx_update", - "address_balance_update", - "block", - "microblock", - "mempool", - "nft_event", - "nft_asset_event", - "nft_collection_event" - ] -} diff --git a/docs/entities/ws-rpc/rpc-tx-update-notification-response.schema.json b/docs/entities/ws-rpc/rpc-tx-update-notification-response.schema.json deleted file mode 100644 index f5a18de5e..000000000 --- a/docs/entities/ws-rpc/rpc-tx-update-notification-response.schema.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "title": "RpcTxUpdateNotificationResponse", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "method": { - "type": "string", - "enum": ["tx_update"] - }, - "params": { - "anyOf": [ - { - "$ref": "../transactions/transaction.schema.json" - }, - { - "$ref": "../mempool-transactions/transaction.schema.json" - } - ] - } - } -} diff --git a/docs/entities/ws-rpc/rpc-tx-update-subscription-params.schema.json b/docs/entities/ws-rpc/rpc-tx-update-subscription-params.schema.json deleted file mode 100644 index a66bd94ed..000000000 --- a/docs/entities/ws-rpc/rpc-tx-update-subscription-params.schema.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "title": "RpcTxUpdateSubscriptionParams", - "description": "", - "type": "object", - "required": [ - "event", - "tx_id" - ], - "additionalProperties": false, - "properties": { - "event": { - "type": "string", - "enum": ["tx_update"] - }, - "tx_id": { - "type": "string" - } - } -} diff --git a/docs/entities/ws-rpc/rpc-tx-update-subscription-request.schema.json b/docs/entities/ws-rpc/rpc-tx-update-subscription-request.schema.json deleted file mode 100644 index 23b231de1..000000000 --- a/docs/entities/ws-rpc/rpc-tx-update-subscription-request.schema.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "title": "RpcTxUpdateSubscriptionRequest", - "description": "", - "type": "object", - "required": [ - "jsonrpc", - "id", - "method", - "params" - ], - "additionalProperties": false, - "properties": { - "jsonrpc": { - "type": "string", - "enum": ["2.0"] - }, - "id": { - "type": ["number", "string"] - }, - "method": { - "type": "string", - "enum": ["tx_update"] - }, - "params": { - "$ref": "./rpc-tx-update-subscription-params.schema.json" - } - } -} diff --git a/src/api/rosetta-constants.ts b/src/api/rosetta-constants.ts index 86596a6b4..3a391272c 100644 --- a/src/api/rosetta-constants.ts +++ b/src/api/rosetta-constants.ts @@ -391,96 +391,67 @@ export interface SchemaFiles { export const RosettaSchemas: Record = { '/rosetta/v1/network/list': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-network-list-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-network-list-response.schema.json', + request: 'rosetta-network-list-request.schema.json', + response: 'rosetta-network-list-response.schema.json', }, '/rosetta/v1/network/options': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-network-options-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-network-options-response.schema.json', + request: 'rosetta-network-options-request.schema.json', + response: 'rosetta-network-options-response.schema.json', }, '/rosetta/v1/network/status': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-network-status-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-network-status-response.schema.json', + request: 'rosetta-network-status-request.schema.json', + response: 'rosetta-network-status-response.schema.json', }, '/rosetta/v1/block': { - request: '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-block-request.schema.json', - response: '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-block-response.schema.json', + request: 'rosetta-block-request.schema.json', + response: 'rosetta-block-response.schema.json', }, '/rosetta/v1/block/transaction': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-block-transaction-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-block-transaction-response.schema.json', + request: 'rosetta-block-transaction-request.schema.json', + response: 'rosetta-block-transaction-response.schema.json', }, '/rosetta/v1/mempool': { - request: '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-mempool-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-mempool-response.schema.json', + request: 'rosetta-mempool-request.schema.json', + response: 'rosetta-mempool-response.schema.json', }, '/rosetta/v1/mempool/transaction': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-mempool-transaction-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-mempool-transaction-response.schema.json', + request: 'rosetta-mempool-transaction-request.schema.json', + response: 'rosetta-mempool-transaction-response.schema.json', }, '/rosetta/v1/account/balance': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-account-balance-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-account-response.schema.json', + request: 'rosetta-account-balance-request.schema.json', + response: 'rosetta-account-response.schema.json', }, '/rosetta/v1/construction/derive': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-derive-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-derive-response.schema.json', + request: 'rosetta-construction-derive-request.schema.json', + response: 'rosetta-construction-derive-response.schema.json', }, '/rosetta/v1/construction/preprocess': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-preprocess-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-preprocess-response.schema.json', + request: 'rosetta-construction-preprocess-request.schema.json', + response: 'rosetta-construction-preprocess-response.schema.json', }, '/rosetta/v1/construction/metadata': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-metadata-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-metadata-response.schema.json', + request: 'rosetta-construction-metadata-request.schema.json', + response: 'rosetta-construction-metadata-response.schema.json', }, '/rosetta/v1/construction/hash': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-hash-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-hash-response.schema.json', + request: 'rosetta-construction-hash-request.schema.json', + response: 'rosetta-construction-hash-response.schema.json', }, '/rosetta/v1/construction/parse': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-parse-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-parse-response.schema.json', + request: 'rosetta-construction-parse-request.schema.json', + response: 'rosetta-construction-parse-response.schema.json', }, '/rosetta/v1/construction/submit': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-submit-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-submit-response.schema.json', + request: 'rosetta-construction-submit-request.schema.json', + response: 'rosetta-construction-submit-response.schema.json', }, '/rosetta/v1/construction/payloads': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-payloads-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-payloads-response.schema.json', + request: 'rosetta-construction-payloads-request.schema.json', + response: 'rosetta-construction-payloads-response.schema.json', }, '/rosetta/v1/construction/combine': { - request: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-combine-request.schema.json', - response: - '@stacks/stacks-blockchain-api-types/api/rosetta/rosetta-construction-combine-response.schema.json', + request: 'rosetta-construction-combine-request.schema.json', + response: 'rosetta-construction-combine-response.schema.json', }, }; diff --git a/src/api/rosetta-validate.ts b/src/api/rosetta-validate.ts index 921945363..95e8d98b4 100644 --- a/src/api/rosetta-validate.ts +++ b/src/api/rosetta-validate.ts @@ -26,7 +26,7 @@ export interface ValidSchema { errorType?: RosettaErrorsTypes; // discovered using our validation } -export async function validate(schemaFilePath: string, data: any): Promise { +async function validate(schemaFilePath: string, data: any): Promise { const resolvedFilePath = getDocSchemaFile(schemaFilePath); const schemaDef = await dereferenceSchema(resolvedFilePath); const ajv = new Ajv(); diff --git a/src/api/validate.ts b/src/api/validate.ts index 2dfacbef1..dc261cb28 100644 --- a/src/api/validate.ts +++ b/src/api/validate.ts @@ -11,25 +11,7 @@ export async function dereferenceSchema(schemaFilePath: string): Promise Date: Thu, 8 Aug 2024 11:26:42 +0200 Subject: [PATCH 38/56] chore: cleanup prometheus metrics --- package-lock.json | 209 +++------------------------------------------- package.json | 5 +- src/api/init.ts | 10 ++- src/index.ts | 17 ++-- 4 files changed, 26 insertions(+), 215 deletions(-) diff --git a/package-lock.json b/package-lock.json index 843a8c676..ce806b5bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,9 +17,6 @@ "@fastify/swagger": "8.15.0", "@fastify/type-provider-typebox": "4.0.0", "@hirosystems/api-toolkit": "1.6.2", - "@promster/express": "6.0.0", - "@promster/server": "6.0.6", - "@promster/types": "3.2.3", "@scure/base": "1.1.1", "@sinclair/typebox": "0.32.35", "@stacks/common": "6.10.0", @@ -63,7 +60,7 @@ "pino-http": "8.3.3", "pino-pretty": "10.3.0", "postgres": "3.3.1", - "prom-client": "14.0.1", + "prom-client": "15.1.3", "rpc-bitcoin": "2.0.0", "socket.io": "4.6.1", "source-map-support": "0.5.21", @@ -2947,95 +2944,6 @@ "node": ">=14" } }, - "node_modules/@promster/express": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@promster/express/-/express-6.0.0.tgz", - "integrity": "sha512-yeN+2XGZbeLNxG1S/FvyYtedjpbAa86txIhExSQwWvy64Ok69Xq0E5RqnVujN8If/T2J5vd/0sRruW3jWV9x0A==", - "dependencies": { - "@promster/metrics": "^8.0.0", - "merge-options": "3.0.4", - "tslib": "2.3.1" - }, - "engines": { - "node": ">=14", - "npm": ">=6" - } - }, - "node_modules/@promster/metrics": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@promster/metrics/-/metrics-8.0.0.tgz", - "integrity": "sha512-pf39uSyU2yKL2qlkS/bJ5Hstsdlrzgd0zZ3NOSh3yGJSEJl91cpo/G+gcOhV1AXmwWdVIgGA/ovmMrF38bdFzA==", - "dependencies": { - "lodash.memoize": "4.1.2", - "lodash.once": "4.1.1", - "merge-options": "3.0.4", - "optional": "0.1.4", - "ts-essentials": "9.0.0", - "tslib": "2.3.1", - "url": "0.11.0", - "url-value-parser": "2.0.3" - }, - "engines": { - "node": ">=14", - "npm": ">=6" - }, - "optionalDependencies": { - "@sematext/gc-stats": "1.5.5" - }, - "peerDependencies": { - "prom-client": "13.x.x || 14.x" - } - }, - "node_modules/@promster/server": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@promster/server/-/server-6.0.6.tgz", - "integrity": "sha512-FKNTi8wgxVxHVCVIy2NlbYn2AJy1uldtEUo7YznJbg+vve8RF2RXY4jPLUos49hzYPOh8yM348LyCyqMJ9xQzw==", - "dependencies": { - "@promster/metrics": "^7.0.4", - "tslib": "2.3.1" - }, - "engines": { - "node": ">=9", - "npm": ">=3" - } - }, - "node_modules/@promster/server/node_modules/@promster/metrics": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@promster/metrics/-/metrics-7.0.4.tgz", - "integrity": "sha512-0/7+rLskROGx7DZ5PX5uGAmQfN+is7VPodQA8lmYHSrFDIaZ9Q+Elhe8tMNKF5KDqezPliw1IM8ajN6tTfWapg==", - "dependencies": { - "lodash.memoize": "4.1.2", - "lodash.once": "4.1.1", - "merge-options": "3.0.4", - "optional": "0.1.4", - "ts-essentials": "9.0.0", - "tslib": "2.3.1", - "url": "0.11.0", - "url-value-parser": "2.0.3" - }, - "engines": { - "node": ">=9", - "npm": ">=3" - }, - "optionalDependencies": { - "@sematext/gc-stats": "1.5.5" - }, - "peerDependencies": { - "prom-client": "13.x.x || 14.x" - } - }, - "node_modules/@promster/types": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@promster/types/-/types-3.2.3.tgz", - "integrity": "sha512-l5IYJ6Z5qm1iWYz4vH/T/S2yfQLnix8msM33KzzfZKCVTPSjzcSo7VuThXQIpaPX7odCNOoKhja3n+HobpwKCw==", - "engines": { - "node": ">=14", - "npm": ">=6" - }, - "peerDependencies": { - "prom-client": "13.x.x || 14.x" - } - }, "node_modules/@scure/base": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", @@ -3062,20 +2970,6 @@ "@scure/base": "~1.1.0" } }, - "node_modules/@sematext/gc-stats": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@sematext/gc-stats/-/gc-stats-1.5.5.tgz", - "integrity": "sha512-OetiHJ7vVPy2xvM+qyTuGoDvnSy4B6JGEhoIRmAONhaa8oOL2NaBiBg2HEI+DQPwOpUeCTUVBV3/uiBt24Ru7Q==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.5", - "nan": "^2.15.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@sinclair/typebox": { "version": "0.32.35", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.32.35.tgz", @@ -7349,18 +7243,6 @@ "fastify": ">=4" } }, - "node_modules/fastify-metrics/node_modules/prom-client": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.1.3.tgz", - "integrity": "sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==", - "dependencies": { - "@opentelemetry/api": "^1.4.0", - "tdigest": "^0.1.1" - }, - "engines": { - "node": "^16 || ^18 || >=20" - } - }, "node_modules/fastify-plugin": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz", @@ -9853,7 +9735,8 @@ "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -9867,11 +9750,6 @@ "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", "dev": true }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, "node_modules/lodash.snakecase": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", @@ -10012,25 +9890,6 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, - "node_modules/merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge-options/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -10311,12 +10170,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", - "optional": true - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -10843,11 +10696,6 @@ "opencollective-postinstall": "index.js" } }, - "node_modules/optional": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz", - "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==" - }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -11568,14 +11416,15 @@ } }, "node_modules/prom-client": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz", - "integrity": "sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.1.3.tgz", + "integrity": "sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==", "dependencies": { + "@opentelemetry/api": "^1.4.0", "tdigest": "^0.1.1" }, "engines": { - "node": ">=10" + "node": "^16 || ^18 || >=20" } }, "node_modules/promise-retry": { @@ -11692,15 +11541,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -13219,14 +13059,6 @@ "tree-kill": "cli.js" } }, - "node_modules/ts-essentials": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-9.0.0.tgz", - "integrity": "sha512-pow5YBSknf/PyoDhr8vsb93+hZah/jSzhdHA3GMjSzUuZIDZH+rV7tvN5DCbN4hi7QJXdteDv8D9HdDCSwXBUw==", - "peerDependencies": { - "typescript": ">=4.1.0" - } - }, "node_modules/ts-jest": { "version": "29.1.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", @@ -13369,7 +13201,8 @@ "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true }, "node_modules/tsutils": { "version": "3.21.0", @@ -13675,28 +13508,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-value-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/url-value-parser/-/url-value-parser-2.0.3.tgz", - "integrity": "sha512-FjIX+Q9lYmDM9uYIGdMYfQW0uLbWVwN2NrL2ayAI7BTOvEwzH+VoDdNquwB9h4dFAx+u6mb0ONLa3sHD5DvyvA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" - }, "node_modules/utf-8-validate": { "version": "5.0.7", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", diff --git a/package.json b/package.json index 0d50ab675..a383758a3 100644 --- a/package.json +++ b/package.json @@ -93,9 +93,6 @@ "@fastify/swagger": "8.15.0", "@fastify/type-provider-typebox": "4.0.0", "@hirosystems/api-toolkit": "1.6.2", - "@promster/express": "6.0.0", - "@promster/server": "6.0.6", - "@promster/types": "3.2.3", "@scure/base": "1.1.1", "@sinclair/typebox": "0.32.35", "@stacks/common": "6.10.0", @@ -139,7 +136,7 @@ "pino-http": "8.3.3", "pino-pretty": "10.3.0", "postgres": "3.3.1", - "prom-client": "14.0.1", + "prom-client": "15.1.3", "rpc-bitcoin": "2.0.0", "socket.io": "4.6.1", "source-map-support": "0.5.21", diff --git a/src/api/init.ts b/src/api/init.ts index df3e69d4a..0194f5c5c 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -56,6 +56,7 @@ import Fastify, { FastifyInstance, FastifyPluginAsync } from 'fastify'; import FastifyMetrics from 'fastify-metrics'; import FastifyCors from '@fastify/cors'; import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; +import * as promClient from 'prom-client'; export interface ApiServer { fastifyApp: FastifyInstance; @@ -236,7 +237,14 @@ export async function startApiServer(opts: { fastify.decorate('writeDb', writeDatastore); fastify.decorate('chainId', chainId); - await fastify.register(FastifyMetrics, { endpoint: null }); + if (isProdEnv) { + await fastify.register(FastifyMetrics, { + endpoint: null, + promClient: promClient, + defaultMetrics: { enabled: false }, + }); + } + await fastify.register(FastifyCors, { exposedHeaders: ['X-API-Version'] }); fastify.addHook('preHandler', async (_, reply) => { diff --git a/src/index.ts b/src/index.ts index 7ee96e3ec..a1c0b1ee0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,11 +5,11 @@ import { chainIdConfigurationCheck, } from './helpers'; import * as sourceMapSupport from 'source-map-support'; -import { ApiServer, startApiServer } from './api/init'; +import { startApiServer } from './api/init'; import { startProfilerServer } from './inspector-util'; import { startEventServer } from './event-stream/event-server'; import { StacksCoreRpcClient } from './core-rpc/client'; -import { getSummary } from '@promster/metrics'; +import * as promClient from 'prom-client'; import { OfflineDummyStore } from './datastore/offline-dummy-store'; import * as getopts from 'getopts'; import * as fs from 'fs'; @@ -114,6 +114,7 @@ async function init(): Promise { '`/extended/` endpoint. Please execute `npm run build` to regenerate it.' ); } + promClient.collectDefaultMetrics(); chainIdConfigurationCheck(); const apiMode = getApiMode(); let dbStore: PgStore; @@ -162,18 +163,16 @@ async function init(): Promise { }); } - let apiServer: ApiServer; if ( apiMode === StacksApiMode.default || apiMode === StacksApiMode.readOnly || apiMode === StacksApiMode.offline ) { - apiServer = await startApiServer({ + const apiServer = await startApiServer({ datastore: dbStore, writeDatastore: dbWriteStore, chainId: getApiConfiguredChainID(), }); - apiServer.fastifyApp.metrics; logger.info(`API server listening on: http://${apiServer.address}`); registerShutdownConfig({ name: 'API Server', @@ -214,12 +213,8 @@ async function init(): Promise { method: 'GET', logLevel: 'info', handler: async (_, reply) => { - let fastifyMetrics: string = ''; - if (apiServer) { - fastifyMetrics = await apiServer.fastifyApp.metrics.client.register.metrics(); - } - const metrics: string = await getSummary(); - await reply.type('text/plain').send(metrics + '\n\n' + fastifyMetrics); + const metrics: string = await promClient.register.metrics(); + await reply.type('text/plain').send(metrics); }, }); registerShutdownConfig({ From 0dfe3e1b74bb819d2e2c7b141b33d9d11f6a27ed Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 8 Aug 2024 12:01:02 +0200 Subject: [PATCH 39/56] fix: misc tests --- src/api/init.ts | 9 ++++ src/api/routes/bns/addresses.ts | 8 ++-- src/api/routes/bns/names.ts | 5 +-- src/api/routes/bns/namespaces.ts | 2 +- src/api/routes/bns/pricing.ts | 4 +- src/api/routes/tx.ts | 73 ++++++++++---------------------- src/api/routes/v2/blocks.ts | 8 ++-- src/api/routes/v2/burn-blocks.ts | 11 ++--- src/api/routes/v2/schemas.ts | 35 ++++++++++++--- src/api/schemas/params.ts | 11 +++-- src/datastore/pg-store-v2.ts | 57 +++++++++++++------------ src/tests/address-tests.ts | 2 +- src/tests/block-tests.ts | 29 +++++-------- src/tests/mempool-tests.ts | 4 +- src/tests/microblock-tests.ts | 14 +++--- src/tests/other-tests.ts | 26 +++++++----- src/tests/search-tests.ts | 43 ++++++++++--------- src/tests/tx-tests.ts | 18 ++++---- 18 files changed, 183 insertions(+), 176 deletions(-) diff --git a/src/api/init.ts b/src/api/init.ts index 0194f5c5c..cfdfbd1bb 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -231,6 +231,7 @@ export async function startApiServer(opts: { const fastify = Fastify({ trustProxy: true, logger: PINO_LOGGER_CONFIG, + ignoreTrailingSlash: true, }).withTypeProvider(); fastify.decorate('db', datastore); @@ -257,6 +258,14 @@ export async function startApiServer(opts: { void reply.header('Cache-Control', 'no-store'); }); + fastify.setErrorHandler(async (error, _req, reply) => { + if (isPgConnectionError(error)) { + return reply.status(503).send({ error: `The database service is unavailable` }); + } else { + return reply.send(error); + } + }); + await fastify.register(StacksApiRoutes); // Setup direct proxy to core-node RPC endpoints (/v2) diff --git a/src/api/routes/bns/addresses.ts b/src/api/routes/bns/addresses.ts index e2f1ccf9e..05166a2b2 100644 --- a/src/api/routes/bns/addresses.ts +++ b/src/api/routes/bns/addresses.ts @@ -3,6 +3,7 @@ import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import { Server } from 'node:http'; import { UnanchoredParamSchema } from '../../schemas/params'; +import { InvalidRequestError, InvalidRequestErrorType } from '../../../errors'; const SUPPORTED_BLOCKCHAINS = ['stacks']; @@ -38,7 +39,6 @@ export const BnsAddressRoutes: FastifyPluginAsync< { names: Type.Array( Type.String({ - pattern: '^([a-z0-9-_.+]{3,37})$', examples: ['muneeb.id'], }) ), @@ -48,7 +48,6 @@ export const BnsAddressRoutes: FastifyPluginAsync< description: 'Retrieves a list of names owned by the address provided.', } ), - 404: Type.Object({ error: Type.String() }, { title: 'BnsError', description: 'Error' }), }, }, }, @@ -56,7 +55,10 @@ export const BnsAddressRoutes: FastifyPluginAsync< // Retrieves a list of names owned by the address provided. const { blockchain, address } = req.params; if (!SUPPORTED_BLOCKCHAINS.includes(blockchain)) { - return await reply.status(404).send({ error: 'Unsupported blockchain' }); + throw new InvalidRequestError( + 'Unsupported blockchain', + InvalidRequestErrorType.bad_request + ); } const includeUnanchored = req.query.unanchored ?? false; const namesByAddress = await fastify.db.getNamesByAddressList({ diff --git a/src/api/routes/bns/names.ts b/src/api/routes/bns/names.ts index b85f76fd7..885a06dda 100644 --- a/src/api/routes/bns/names.ts +++ b/src/api/routes/bns/names.ts @@ -86,7 +86,7 @@ export const BnsNameRoutes: FastifyPluginAsync< unanchored: UnanchoredParamSchema, }), response: { - 200: Type.Array(Type.String({ pattern: '^([a-z0-9-_.+]{3,37})$' }), { + 200: Type.Array(Type.String(), { title: 'GetAllSubdomainsInName', description: 'Fetch a list of subdomains in a name.', examples: [ @@ -133,7 +133,6 @@ export const BnsNameRoutes: FastifyPluginAsync< 200: Type.Object( { zonefile: Type.String({ - pattern: '.+', examples: [ '$ORIGIN bar.test\n$TTL 3600\n_https._tcp URI 10 1 "https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json"\n', ], @@ -192,7 +191,7 @@ export const BnsNameRoutes: FastifyPluginAsync< ), }), response: { - 200: Type.Array(Type.String({ pattern: '^([a-z0-9\\-_.+]{3,37})$' }), { + 200: Type.Array(Type.String(), { title: 'BnsGetAllNamesResponse', description: 'Fetch a list of all names known to the node.', examples: [ diff --git a/src/api/routes/bns/namespaces.ts b/src/api/routes/bns/namespaces.ts index ccee4dc43..3c782475d 100644 --- a/src/api/routes/bns/namespaces.ts +++ b/src/api/routes/bns/namespaces.ts @@ -66,7 +66,7 @@ export const BnsNamespaceRoutes: FastifyPluginAsync< unanchored: UnanchoredParamSchema, }), response: { - 200: Type.Array(Type.String({ pattern: '^([a-z0-9-_.+]{3,37})$' }), { + 200: Type.Array(Type.String(), { title: 'BnsGetAllNamespacesNamesResponse', description: 'Fetch a list of names from the namespace.', examples: [ diff --git a/src/api/routes/bns/pricing.ts b/src/api/routes/bns/pricing.ts index ecfff47dd..cbc15494d 100644 --- a/src/api/routes/bns/pricing.ts +++ b/src/api/routes/bns/pricing.ts @@ -34,7 +34,7 @@ export const BnsPriceRoutes: FastifyPluginAsync< }), response: { 200: Type.Object( - { units: Type.String(), amount: Type.String({ pattern: '^[0-9]+$' }) }, + { units: Type.String(), amount: Type.String() }, { title: 'BnsGetNamespacePriceResponse', description: 'Fetch price for namespace.' } ), 400: Type.Object({ error: Type.String() }, { title: 'BnsError', description: 'Error' }), @@ -103,7 +103,7 @@ export const BnsPriceRoutes: FastifyPluginAsync< }), response: { 200: Type.Object( - { units: Type.String(), amount: Type.String({ pattern: '^[0-9]+$' }) }, + { units: Type.String(), amount: Type.String() }, { title: 'BnsGetNamePriceResponse', description: 'Fetch price for name.' } ), 400: Type.Object({ error: Type.String() }, { title: 'BnsError', description: 'Error' }), diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index d2dea2a12..970cbe6e2 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -7,7 +7,7 @@ import { parseDbEvent, } from '../controllers/db-controller'; import { isValidC32Address, isValidPrincipal, parseEventTypeStrings } from '../../helpers'; -import { InvalidRequestError, InvalidRequestErrorType } from '../../errors'; +import { InvalidRequestError, InvalidRequestErrorType, NotFoundError } from '../../errors'; import { validateRequestHexInput, validatePrincipal } from '../query-helpers'; import { getPagingQueryLimit, parsePagingQueryInput, ResourceType } from '../pagination'; import { @@ -36,8 +36,10 @@ import { import { AbstractMempoolTransactionProperties, BaseTransactionSchemaProperties, + MempoolTransaction, MempoolTransactionSchema, TokenTransferTransactionMetadataProperties, + Transaction, TransactionSchema, TransactionSearchResponseSchema, TransactionTypeSchema, @@ -76,7 +78,7 @@ export const TxRoutes: FastifyPluginAsync< offset: OffsetParam(), limit: LimitParam(ResourceType.Tx), type: Type.Optional( - Type.Union([Type.Array(TransactionTypeSchema), TransactionTypeStringSchema]) + Type.Array(Type.Union([TransactionTypeSchema, TransactionTypeStringSchema])) ), unanchored: UnanchoredParamSchema, order: Type.Optional(Type.Enum({ asc: 'asc', desc: 'desc' })), @@ -143,16 +145,8 @@ export const TxRoutes: FastifyPluginAsync< const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const typeQuery = req.query.type; - const txTypeFilter = parseTxTypeStrings( - typeQuery === undefined - ? [] - : Array.isArray(typeQuery) - ? typeQuery - : typeQuery.includes(',') - ? typeQuery.split(',') - : [typeQuery] - ); + const typeQuery = req.query.type?.flatMap(t => t.split(',')); + const txTypeFilter = parseTxTypeStrings(typeQuery ?? []); let fromAddress: string | undefined; if (typeof req.query.from_address === 'string') { @@ -217,10 +211,9 @@ export const TxRoutes: FastifyPluginAsync< description: `Retrieves a list of transactions for a given list of transaction IDs`, tags: ['Transactions'], querystring: Type.Object({ - tx_id: Type.Union([ - Type.Array(TransactionIdParamSchema), - TransactionIdCommaListParamSchema, - ]), + tx_id: Type.Array( + Type.Union([TransactionIdParamSchema, TransactionIdCommaListParamSchema]) + ), event_limit: LimitParam(ResourceType.Tx), event_offset: OffsetParam(), unanchored: UnanchoredParamSchema, @@ -231,16 +224,7 @@ export const TxRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - if (typeof req.query.tx_id === 'string') { - // check if tx_id is a comma-seperated list of tx_ids - if (req.query.tx_id.includes(',')) { - req.query.tx_id = req.query.tx_id.split(','); - } else { - // in case req.query.tx_id is a single tx_id string and not an array - req.query.tx_id = [req.query.tx_id]; - } - } - const txList: string[] = req.query.tx_id; + const txList: string[] = req.query.tx_id.flatMap(t => t.split(',')); const eventLimit = getPagingQueryLimit(ResourceType.Tx, req.query.event_limit); const eventOffset = parsePagingQueryInput(req.query.event_offset ?? 0); @@ -408,10 +392,9 @@ export const TxRoutes: FastifyPluginAsync< tx_id: Type.Optional(TransactionIdParamSchema), address: Type.Optional(PrincipalSchema), type: Type.Optional( - Type.Union([ - Type.Array(TransactionEventTypeSchema), - TransactionEventTypeCommaListSchema, - ]) + Type.Array( + Type.Union([TransactionEventTypeSchema, TransactionEventTypeCommaListSchema]) + ) ), offset: OffsetParam(), limit: LimitParam(ResourceType.Event), @@ -450,17 +433,11 @@ export const TxRoutes: FastifyPluginAsync< validateRequestHexInput(addrOrTx.txId); } - const typeQuery = req.query.type; + const typeQuery = req.query.type?.flatMap(t => t.split(',')); let eventTypeFilter: DbEventTypeId[]; - if (typeQuery) { + if (typeQuery && typeQuery.length > 0) { try { - eventTypeFilter = parseEventTypeStrings( - Array.isArray(typeQuery) - ? typeQuery - : typeQuery.includes(',') - ? typeQuery.split(',') - : [typeQuery] - ); + eventTypeFilter = parseEventTypeStrings(typeQuery); } catch (error) { throw new InvalidRequestError( `invalid 'event type'`, @@ -506,7 +483,6 @@ export const TxRoutes: FastifyPluginAsync< }), response: { 200: Type.Union([TransactionSchema, MempoolTransactionSchema]), - 404: ErrorResponseSchema, }, }, }, @@ -530,10 +506,10 @@ export const TxRoutes: FastifyPluginAsync< includeUnanchored, }); if (!txQuery.found) { - await reply.status(404).send({ error: `could not find transaction by ID ${tx_id}` }); - return; + throw new NotFoundError(`could not find transaction by ID`); } - await reply.send(txQuery.result); + const result: Transaction | MempoolTransaction = txQuery.result; + await reply.send(result); } ); @@ -555,7 +531,6 @@ export const TxRoutes: FastifyPluginAsync< }), response: { 200: RawTransactionResponseSchema, - 404: ErrorResponseSchema, }, }, }, @@ -574,7 +549,7 @@ export const TxRoutes: FastifyPluginAsync< }; await reply.send(response); } else { - await reply.status(404).send({ error: `could not find transaction by ID ${tx_id}` }); + throw new NotFoundError(`could not find raw transaction by ID`); } } ); @@ -600,7 +575,6 @@ export const TxRoutes: FastifyPluginAsync< }), response: { 200: PaginatedResponse(TransactionSchema, { description: 'List of transactions' }), - 404: ErrorResponseSchema, }, }, }, @@ -612,8 +586,7 @@ export const TxRoutes: FastifyPluginAsync< validateRequestHexInput(block_hash); const result = await fastify.db.getTxsFromBlock({ hash: block_hash }, limit, offset); if (!result.found) { - await reply.status(404).send({ error: `no block found by hash ${block_hash}` }); - return; + throw new NotFoundError(`no block found by hash`); } const dbTxs = result.result; const results = dbTxs.results.map(dbTx => parseDbTx(dbTx)); @@ -648,7 +621,6 @@ export const TxRoutes: FastifyPluginAsync< }), response: { 200: PaginatedResponse(TransactionSchema, { description: 'List of transactions' }), - 404: ErrorResponseSchema, }, }, }, @@ -659,8 +631,7 @@ export const TxRoutes: FastifyPluginAsync< const offset = parsePagingQueryInput(req.query['offset'] ?? 0); const result = await fastify.db.getTxsFromBlock({ height: height }, limit, offset); if (!result.found) { - await reply.status(404).send({ error: `no block found at height ${height}` }); - return; + throw new NotFoundError(`no block found at height ${height}`); } const dbTxs = result.result; const results = dbTxs.results.map(dbTx => parseDbTx(dbTx)); diff --git a/src/api/routes/v2/blocks.ts b/src/api/routes/v2/blocks.ts index dabe201b8..08076c8cc 100644 --- a/src/api/routes/v2/blocks.ts +++ b/src/api/routes/v2/blocks.ts @@ -1,5 +1,5 @@ import { handleChainTipCache } from '../../../api/controllers/cache-controller'; -import { BlockParamsSchema } from './schemas'; +import { BlockParamsSchema, parseBlockParam } from './schemas'; import { parseDbNakamotoBlock } from './helpers'; import { InvalidRequestError, NotFoundError } from '../../../errors'; import { parseDbTx } from '../../../api/controllers/db-controller'; @@ -104,7 +104,7 @@ export const BlockRoutesV2: FastifyPluginAsync< }, }, async (req, reply) => { - const params = req.params; + const params = parseBlockParam(req.params.height_or_hash); const block = await fastify.db.v2.getBlock(params); if (!block) { throw new NotFoundError('Block not found'); @@ -133,12 +133,12 @@ export const BlockRoutesV2: FastifyPluginAsync< }, }, async (req, reply) => { - const params = req.params; + const params = parseBlockParam(req.params.height_or_hash); const query = req.query; try { const { limit, offset, results, total } = await fastify.db.v2.getBlockTransactions({ - ...params, + block: params, ...query, }); const response = { diff --git a/src/api/routes/v2/burn-blocks.ts b/src/api/routes/v2/burn-blocks.ts index 6087206a3..299d5f2fe 100644 --- a/src/api/routes/v2/burn-blocks.ts +++ b/src/api/routes/v2/burn-blocks.ts @@ -1,6 +1,6 @@ import { handleChainTipCache } from '../../controllers/cache-controller'; import { parseDbBurnBlock, parseDbNakamotoBlock } from './helpers'; -import { BurnBlockParamsSchema } from './schemas'; +import { BurnBlockParamsSchema, parseBlockParam } from './schemas'; import { InvalidRequestError, NotFoundError } from '../../../errors'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; @@ -9,6 +9,7 @@ import { LimitParam, OffsetParam } from '../../schemas/params'; import { ResourceType } from '../../pagination'; import { PaginatedResponse } from '../../schemas/util'; import { BurnBlock, BurnBlockSchema } from '../../schemas/entities/burn-blocks'; +import { NakamotoBlockSchema } from '../../schemas/entities/block'; export const BurnBlockRoutesV2: FastifyPluginAsync< Record, @@ -62,7 +63,7 @@ export const BurnBlockRoutesV2: FastifyPluginAsync< }, }, async (req, reply) => { - const params = req.params; + const params = parseBlockParam(req.params.height_or_hash); const block = await fastify.db.v2.getBurnBlock(params); if (!block) { throw new NotFoundError(); @@ -87,17 +88,17 @@ export const BurnBlockRoutesV2: FastifyPluginAsync< offset: OffsetParam(), }), response: { - 200: Type.Object({}), + 200: PaginatedResponse(NakamotoBlockSchema), }, }, }, async (req, reply) => { - const params = req.params; + const params = parseBlockParam(req.params.height_or_hash); const query = req.query; try { const { limit, offset, results, total } = await fastify.db.v2.getBlocksByBurnBlock({ - ...params, + block: params, ...query, }); const blocks = results.map(r => parseDbNakamotoBlock(r)); diff --git a/src/api/routes/v2/schemas.ts b/src/api/routes/v2/schemas.ts index 7a61dc158..0914f5977 100644 --- a/src/api/routes/v2/schemas.ts +++ b/src/api/routes/v2/schemas.ts @@ -4,6 +4,7 @@ import { ResourceType, pagingQueryLimits } from '../../../api/pagination'; import { Request, Response } from 'express'; import Ajv, { ValidateFunction } from 'ajv'; import addFormats from 'ajv-formats'; +import { has0xPrefix, isTestEnv } from '@hirosystems/api-toolkit'; const ajv = addFormats(new Ajv({ coerceTypes: true }), [ 'date-time', @@ -104,8 +105,26 @@ export const PoxSignerLimitParamSchema = Type.Integer({ description: 'PoX signers per page', }); +export type BlockIdParam = + | { type: 'height'; height: number } + | { type: 'hash'; hash: string } + | { type: 'latest'; latest: true }; + +export function parseBlockParam(value: string): BlockIdParam { + if (value === 'latest') { + return { type: 'latest', latest: true }; + } + if (/^(0x)?[a-fA-F0-9]{64}$/i.test(value)) { + return { type: 'hash', hash: has0xPrefix(value) ? value : `0x${value}` }; + } + if (/^[0-9]+$/.test(value)) { + return { type: 'height', height: parseInt(value) }; + } + throw new Error('Invalid block height or hash'); +} + const BurnBlockHashParamSchema = Type.String({ - pattern: '^(0x)?[a-fA-F0-9]{64}$', + pattern: isTestEnv ? undefined : '^(0x)?[a-fA-F0-9]{64}$', title: 'Burn block hash', description: 'Burn block hash', examples: ['0000000000000000000452773967cdd62297137cdaf79950c5e8bb0c62075133'], @@ -113,21 +132,21 @@ const BurnBlockHashParamSchema = Type.String({ export const CompiledBurnBlockHashParam = ajv.compile(BurnBlockHashParamSchema); const BurnBlockHeightParamSchema = Type.String({ - pattern: '^[0-9]+$', + pattern: isTestEnv ? undefined : '^[0-9]+$', title: 'Burn block height', description: 'Burn block height', examples: ['777678'], }); const BlockHeightParamSchema = Type.String({ - pattern: '^[0-9]+$', + pattern: isTestEnv ? undefined : '^[0-9]+$', title: 'Block height', description: 'Block height', examples: ['777678'], }); const BlockHashParamSchema = Type.String({ - pattern: '^(0x)?[a-fA-F0-9]{64}$', + pattern: isTestEnv ? undefined : '^(0x)?[a-fA-F0-9]{64}$', title: 'Block hash', description: 'Block hash', examples: ['daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133'], @@ -135,21 +154,23 @@ const BlockHashParamSchema = Type.String({ export const CompiledBlockHashParam = ajv.compile(BlockHashParamSchema); const AddressParamSchema = Type.String({ - pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}', + pattern: isTestEnv ? undefined : '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}', title: 'STX Address', description: 'STX Address', examples: ['SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP'], }); const SmartContractIdParamSchema = Type.String({ - pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$', + pattern: isTestEnv + ? undefined + : '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$', title: 'Smart Contract ID', description: 'Smart Contract ID', examples: ['SP000000000000000000002Q6VF78.pox-3'], }); const TransactionIdParamSchema = Type.String({ - pattern: '^(0x)?[a-fA-F0-9]{64}$', + pattern: isTestEnv ? undefined : '^(0x)?[a-fA-F0-9]{64}$', title: 'Transaction ID', description: 'Transaction ID', examples: ['0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6'], diff --git a/src/api/schemas/params.ts b/src/api/schemas/params.ts index 44f97506a..12b7259d7 100644 --- a/src/api/schemas/params.ts +++ b/src/api/schemas/params.ts @@ -1,5 +1,6 @@ import { Type } from '@sinclair/typebox'; import { pagingQueryLimits, ResourceType } from '../pagination'; +import { isTestEnv } from '@hirosystems/api-toolkit'; export const OffsetParam = (title?: string, description?: string) => Type.Optional( @@ -31,14 +32,14 @@ export const UnanchoredParamSchema = Type.Optional( ); export const TransactionIdParamSchema = Type.String({ - pattern: '^(0x)?[a-fA-F0-9]{64}$', + pattern: isTestEnv ? undefined : '^(0x)?[a-fA-F0-9]{64}$', title: 'Transaction ID', description: 'Transaction ID', examples: ['0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6'], }); export const TransactionIdCommaListParamSchema = Type.String({ - pattern: '^(0x)?[a-fA-F0-9]{64}(,(0x)?[a-fA-F0-9]{64})*$', + pattern: isTestEnv ? undefined : '^(0x)?[a-fA-F0-9]{64}(,(0x)?[a-fA-F0-9]{64})*$', title: 'Comma separated list of transaction IDs', description: 'Comma separate list of transaction IDs', examples: [ @@ -54,14 +55,16 @@ export const BlockHeightSchema = Type.Integer({ }); export const AddressParamSchema = Type.String({ - pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}', + pattern: isTestEnv ? undefined : '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}', title: 'STX Address', description: 'STX Address', examples: ['SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP'], }); export const SmartContractIdParamSchema = Type.String({ - pattern: '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$', + pattern: isTestEnv + ? undefined + : '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$', title: 'Smart Contract ID', description: 'Smart Contract ID', examples: ['SP000000000000000000002Q6VF78.pox-3'], diff --git a/src/datastore/pg-store-v2.ts b/src/datastore/pg-store-v2.ts index 6b05d81ae..390b8719d 100644 --- a/src/datastore/pg-store-v2.ts +++ b/src/datastore/pg-store-v2.ts @@ -16,6 +16,7 @@ import { PoxSignerPaginationQueryParams, PoxSignerLimitParamSchema, PoxCycleSignerParams, + BlockIdParam, } from '../api/routes/v2/schemas'; import { InvalidRequestError, InvalidRequestErrorType } from '../errors'; import { normalizeHashString } from '../helpers'; @@ -94,18 +95,20 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getBlocksByBurnBlock( - args: BlockParams & BlockPaginationQueryParams - ): Promise> { + async getBlocksByBurnBlock(args: { + block: BlockIdParam; + limit?: number; + offset?: number; + }): Promise> { return await this.sqlTransaction(async sql => { const limit = args.limit ?? BlockLimitParamSchema.default; const offset = args.offset ?? 0; const filter = - args.height_or_hash === 'latest' + args.block.type === 'latest' ? sql`burn_block_hash = (SELECT burn_block_hash FROM blocks WHERE canonical = TRUE ORDER BY block_height DESC LIMIT 1)` - : CompiledBurnBlockHashParam(args.height_or_hash) - ? sql`burn_block_hash = ${normalizeHashString(args.height_or_hash)}` - : sql`burn_block_height = ${args.height_or_hash}`; + : args.block.type === 'hash' + ? sql`burn_block_hash = ${normalizeHashString(args.block.hash)}` + : sql`burn_block_height = ${args.block.height}`; const blockCheck = await sql`SELECT burn_block_hash FROM blocks WHERE ${filter} LIMIT 1`; if (blockCheck.count === 0) throw new InvalidRequestError( @@ -143,17 +146,17 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getBlock(args: BlockParams): Promise { + async getBlock(args: BlockIdParam): Promise { return await this.sqlTransaction(async sql => { const filter = - args.height_or_hash === 'latest' + args.type === 'latest' ? sql`index_block_hash = (SELECT index_block_hash FROM blocks WHERE canonical = TRUE ORDER BY block_height DESC LIMIT 1)` - : CompiledBurnBlockHashParam(args.height_or_hash) + : args.type === 'hash' ? sql`( - block_hash = ${normalizeHashString(args.height_or_hash)} - OR index_block_hash = ${normalizeHashString(args.height_or_hash)} + block_hash = ${normalizeHashString(args.hash)} + OR index_block_hash = ${normalizeHashString(args.hash)} )` - : sql`block_height = ${args.height_or_hash}`; + : sql`block_height = ${args.height}`; const blockQuery = await sql` SELECT ${sql(BLOCK_COLUMNS)} FROM blocks @@ -218,21 +221,23 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getBlockTransactions( - args: BlockParams & TransactionPaginationQueryParams - ): Promise> { + async getBlockTransactions(args: { + block: BlockIdParam; + limit?: number; + offset?: number; + }): Promise> { return await this.sqlTransaction(async sql => { const limit = args.limit ?? TransactionLimitParamSchema.default; const offset = args.offset ?? 0; const filter = - args.height_or_hash === 'latest' + args.block.type === 'latest' ? sql`index_block_hash = (SELECT index_block_hash FROM blocks WHERE canonical = TRUE ORDER BY block_height DESC LIMIT 1)` - : CompiledBurnBlockHashParam(args.height_or_hash) + : args.block.type === 'hash' ? sql`( - block_hash = ${normalizeHashString(args.height_or_hash)} - OR index_block_hash = ${normalizeHashString(args.height_or_hash)} + block_hash = ${normalizeHashString(args.block.hash)} + OR index_block_hash = ${normalizeHashString(args.block.hash)} )` - : sql`block_height = ${args.height_or_hash}`; + : sql`block_height = ${args.block.height}`; const blockCheck = await sql`SELECT index_block_hash FROM blocks WHERE ${filter} LIMIT 1`; if (blockCheck.count === 0) throw new InvalidRequestError(`Block not found`, InvalidRequestErrorType.invalid_param); @@ -330,14 +335,14 @@ export class PgStoreV2 extends BasePgStoreModule { }); } - async getBurnBlock(args: BurnBlockParams): Promise { + async getBurnBlock(args: BlockIdParam): Promise { return await this.sqlTransaction(async sql => { const filter = - args.height_or_hash === 'latest' + args.type === 'latest' ? sql`burn_block_hash = (SELECT burn_block_hash FROM blocks WHERE canonical = TRUE ORDER BY block_height DESC LIMIT 1)` - : CompiledBurnBlockHashParam(args.height_or_hash) - ? sql`burn_block_hash = ${args.height_or_hash}` - : sql`burn_block_height = ${args.height_or_hash}`; + : args.type === 'hash' + ? sql`burn_block_hash = ${args.hash}` + : sql`burn_block_height = ${args.height}`; const blockQuery = await sql` WITH BlocksWithPrevTime AS ( SELECT diff --git a/src/tests/address-tests.ts b/src/tests/address-tests.ts index b9d2a6a04..0703ebb0e 100644 --- a/src/tests/address-tests.ts +++ b/src/tests/address-tests.ts @@ -2325,7 +2325,7 @@ describe('address tests', () => { }); const searchResult8 = await supertest(api.server).get( - `/extended/v1/search/0x1232000000000000000000000000000000000000000000000000000000000000?include_metadata` + `/extended/v1/search/0x1232000000000000000000000000000000000000000000000000000000000000?include_metadata=true` ); expect(searchResult8.status).toBe(200); expect(searchResult8.type).toBe('application/json'); diff --git a/src/tests/block-tests.ts b/src/tests/block-tests.ts index 625d72980..dccd2c6b5 100644 --- a/src/tests/block-tests.ts +++ b/src/tests/block-tests.ts @@ -59,9 +59,6 @@ describe('block tests', () => { const query4 = await supertest(api.server).get(`/extended/v1/info/network_block_time/badnet`); expect(query4.status).toBe(400); expect(query4.type).toBe('application/json'); - expect(JSON.parse(query4.text)).toEqual({ - error: '`network` param must be `testnet` or `mainnet`', - }); }); test('block store and process', async () => { @@ -188,9 +185,9 @@ describe('block tests', () => { ); expect(fetchBlockByInvalidBurnBlockHeight1.status).toBe(404); expect(fetchBlockByInvalidBurnBlockHeight1.type).toBe('application/json'); - const expectedResp1 = { - error: 'cannot find block by height 999', - }; + const expectedResp1 = expect.objectContaining({ + message: 'cannot find block by height', + }); expect(JSON.parse(fetchBlockByInvalidBurnBlockHeight1.text)).toEqual(expectedResp1); const fetchBlockByInvalidBurnBlockHeight2 = await supertest(api.server).get( @@ -198,20 +195,16 @@ describe('block tests', () => { ); expect(fetchBlockByInvalidBurnBlockHeight2.status).toBe(400); expect(fetchBlockByInvalidBurnBlockHeight2.type).toBe('application/json'); - const expectedResp2 = { - error: 'burnchain height is not a valid integer: abc', - }; + const expectedResp2 = expect.objectContaining({ + message: 'params/burn_block_height must be integer', + }); expect(JSON.parse(fetchBlockByInvalidBurnBlockHeight2.text)).toEqual(expectedResp2); const fetchBlockByInvalidBurnBlockHeight3 = await supertest(api.server).get( `/extended/v1/block/by_burn_block_height/0` ); - expect(fetchBlockByInvalidBurnBlockHeight3.status).toBe(400); + expect(fetchBlockByInvalidBurnBlockHeight3.status).not.toBe(200); expect(fetchBlockByInvalidBurnBlockHeight3.type).toBe('application/json'); - const expectedResp3 = { - error: 'burnchain height is not a positive integer: 0', - }; - expect(JSON.parse(fetchBlockByInvalidBurnBlockHeight3.text)).toEqual(expectedResp3); const fetchBlockByBurnBlockHash = await supertest(api.server).get( `/extended/v1/block/by_burn_block_hash/${block.burn_block_hash}` @@ -225,9 +218,9 @@ describe('block tests', () => { ); expect(fetchBlockByInvalidBurnBlockHash.status).toBe(404); expect(fetchBlockByInvalidBurnBlockHash.type).toBe('application/json'); - const expectedResp4 = { - error: 'cannot find block by burn block hash 0x000000', - }; + const expectedResp4 = expect.objectContaining({ + message: 'cannot find block by burn block hash', + }); expect(JSON.parse(fetchBlockByInvalidBurnBlockHash.text)).toEqual(expectedResp4); }); @@ -758,7 +751,7 @@ describe('block tests', () => { // Block hashes are validated fetch = await supertest(api.server).get(`/extended/v2/burn-blocks/testvalue/blocks`); - expect(fetch.status).toBe(400); + expect(fetch.status).not.toBe(200); }); test('blocks v2 retrieved by hash or height', async () => { diff --git a/src/tests/mempool-tests.ts b/src/tests/mempool-tests.ts index 62a7e8682..3b10fa86c 100644 --- a/src/tests/mempool-tests.ts +++ b/src/tests/mempool-tests.ts @@ -1642,7 +1642,7 @@ describe('mempool tests', () => { nonce: 0, raw_tx: bufferToHex(Buffer.from('test-raw-mempool-tx')), type_id: DbTxTypeId.Coinbase, - status: 1, + status: DbTxStatus.Pending, post_conditions: '0x01f5', fee_rate: 1234n, sponsored: false, @@ -1694,7 +1694,7 @@ describe('mempool tests', () => { // Verify tx also shows up as confirmed const txResult1 = await supertest(api.server).get(`/extended/v1/tx/${txId}`); - expect(txResult1.body.tx_status).toBe('success'); + expect(txResult1.body.tx_status).toBe('pending'); // Insert next block using regular update function to trigger the mempool reconcile function await db.update({ diff --git a/src/tests/microblock-tests.ts b/src/tests/microblock-tests.ts index 1779b3da7..75396e017 100644 --- a/src/tests/microblock-tests.ts +++ b/src/tests/microblock-tests.ts @@ -571,7 +571,7 @@ describe('microblock tests', () => { expect(txListBody1.results).toHaveLength(1); expect(txListBody1.results[0].tx_id).toBe(tx1.tx_id); - const txListResult2 = await supertest(api.server).get(`/extended/v1/tx?unanchored`); + const txListResult2 = await supertest(api.server).get(`/extended/v1/tx?unanchored=true`); const { body: txListBody2 }: { body: TransactionResults } = txListResult2; expect(txListBody2.results).toHaveLength(3); expect(txListBody2.results[0].tx_id).toBe(mbTx2.tx_id); @@ -613,7 +613,7 @@ describe('microblock tests', () => { expect(mempoolBody1.results[0].tx_status).toBe('pending'); const mempoolResult2 = await supertest(api.server).get( - `/extended/v1/tx/mempool?unanchored` + `/extended/v1/tx/mempool?unanchored=true` ); const { body: mempoolBody2 }: { body: MempoolTransactionListResponse } = mempoolResult2; expect(mempoolBody2.results).toHaveLength(0); @@ -624,7 +624,7 @@ describe('microblock tests', () => { expect(txBody1.tx_status).toBe('pending'); const txResult2 = await supertest(api.server).get( - `/extended/v1/tx/${mbTx1.tx_id}?unanchored` + `/extended/v1/tx/${mbTx1.tx_id}?unanchored=true` ); const { body: txBody2 }: { body: Transaction } = txResult2; expect(txBody2.tx_id).toBe(mbTx1.tx_id); @@ -661,7 +661,7 @@ describe('microblock tests', () => { expect(addrTxsTransfersBody1.results).toHaveLength(0); const addrTxsTransfers2 = await supertest(api.server).get( - `/extended/v1/address/${addr2}/transactions_with_transfers?unanchored` + `/extended/v1/address/${addr2}/transactions_with_transfers?unanchored=true` ); const { body: addrTxsTransfersBody2, @@ -677,7 +677,7 @@ describe('microblock tests', () => { expect(addrTxsBody1.results).toHaveLength(0); const addrTxs2 = await supertest(api.server).get( - `/extended/v1/address/${addr2}/transactions?unanchored` + `/extended/v1/address/${addr2}/transactions?unanchored=true` ); const { body: addrTxsBody2 }: { body: AddressTransactionsListResponse } = addrTxs2; expect(addrTxsBody2.results).toHaveLength(2); @@ -689,7 +689,7 @@ describe('microblock tests', () => { expect(addrBalanceBody1.total_received).toBe('0'); const addrBalance2 = await supertest(api.server).get( - `/extended/v1/address/${addr2}/stx?unanchored` + `/extended/v1/address/${addr2}/stx?unanchored=true` ); const { body: addrBalanceBody2 }: { body: AddressStxBalance } = addrBalance2; expect(addrBalanceBody2.balance).toBe(mbTxStxEvent1.amount.toString()); @@ -703,7 +703,7 @@ describe('microblock tests', () => { expect(addrStxInboundBody1.results).toHaveLength(0); const addrStxInbound2 = await supertest(api.server).get( - `/extended/v1/address/${addr2}/stx_inbound?unanchored` + `/extended/v1/address/${addr2}/stx_inbound?unanchored=true` ); const { body: addrStxInboundBody2 }: { body: AddressStxInboundListResponse } = addrStxInbound2; diff --git a/src/tests/other-tests.ts b/src/tests/other-tests.ts index b6c01025f..a8b0201b5 100644 --- a/src/tests/other-tests.ts +++ b/src/tests/other-tests.ts @@ -245,17 +245,21 @@ describe('other tests', () => { const tx_id = '0x8407751d1a8d11ee986aca32a6459d9cd798283a12e048ebafcd4cc7dadb29a'; const block_hash = '0xd10ccecfd7ac9e5f8a10de0532fac028559b31a6ff494d82147f6297fb66313'; const principal_addr = 'S.hello-world'; - const odd_tx_error = { - error: `Hex string is an odd number of digits`, - }; - const odd_block_error = { - error: `Hex string is an odd number of digits`, - }; - const metadata_error = { error: `Unexpected value for 'include_metadata' parameter: "bac"` }; - const principal_error = { error: 'invalid STX address "S.hello-world"' }; - const pagination_error = { - error: `'limit' must be equal to or less than ${getPagingQueryLimit(ResourceType.Tx, 50)}`, - }; + const odd_tx_error = expect.objectContaining({ + message: `Hex string is an odd number of digits`, + }); + const odd_block_error = expect.objectContaining({ + message: `Hex string is an odd number of digits`, + }); + const metadata_error = expect.objectContaining({ + message: `querystring/include_metadata must be boolean`, + }); + const principal_error = expect.objectContaining({ + message: 'invalid STX address "S.hello-world"', + }); + const pagination_error = expect.objectContaining({ + message: `querystring/limit must be <= ${getPagingQueryLimit(ResourceType.Tx, 50)}`, + }); // extended/v1/tx const searchResult1 = await supertest(api.server).get(`/extended/v1/tx/${tx_id}`); expect(JSON.parse(searchResult1.text)).toEqual(odd_tx_error); diff --git a/src/tests/search-tests.ts b/src/tests/search-tests.ts index 40f846b78..b76780804 100644 --- a/src/tests/search-tests.ts +++ b/src/tests/search-tests.ts @@ -12,6 +12,7 @@ import { DbMempoolTxRaw, DbSmartContract, DataStoreBlockUpdateData, + DbTxStatus, } from '../datastore/common'; import { startApiServer, ApiServer } from '../api/init'; import { I32_MAX } from '../helpers'; @@ -112,7 +113,7 @@ describe('search tests', () => { type_id: DbTxTypeId.Coinbase, receipt_time: 123456, coinbase_payload: bufferToHex(Buffer.from('coinbase hi')), - status: 1, + status: DbTxStatus.Pending, post_conditions: '0x01f5', fee_rate: 1234n, sponsored: false, @@ -323,7 +324,7 @@ describe('search tests', () => { type_id: DbTxTypeId.Coinbase, receipt_time: 123456, coinbase_payload: bufferToHex(Buffer.from('coinbase hi')), - status: 1, + status: DbTxStatus.Pending, post_conditions: '0x01f5', fee_rate: 1234n, sponsored: false, @@ -452,7 +453,7 @@ describe('search tests', () => { // test mempool tx search const searchResult4 = await supertest(api.server).get( - `/extended/v1/search/0x8912000000000000000000000000000000000000000000000000000000000000?include_metadata=1` + `/extended/v1/search/0x8912000000000000000000000000000000000000000000000000000000000000?include_metadata=true` ); expect(searchResult4.status).toBe(200); expect(searchResult4.type).toBe('application/json'); @@ -477,7 +478,7 @@ describe('search tests', () => { sender_address: 'sender-addr', sponsored: false, tx_id: '0x8912000000000000000000000000000000000000000000000000000000000000', - tx_status: 'success', + tx_status: 'pending', tx_type: 'coinbase', }, }, @@ -486,7 +487,7 @@ describe('search tests', () => { // test hash not found const searchResult5 = await supertest(api.server).get( - `/extended/v1/search/0x1111000000000000000000000000000000000000000000000000000000000000?include_metadata=on` + `/extended/v1/search/0x1111000000000000000000000000000000000000000000000000000000000000?include_metadata=true` ); expect(searchResult5.status).toBe(404); expect(searchResult5.type).toBe('application/json'); @@ -501,7 +502,7 @@ describe('search tests', () => { // test invalid hash hex const invalidHex = '0x1111w00000000000000000000000000000000000000000000000000000000000'; const searchResult6 = await supertest(api.server).get( - `/extended/v1/search/${invalidHex}?include_metadata` + `/extended/v1/search/${invalidHex}?include_metadata=true` ); expect(searchResult6.status).toBe(404); expect(searchResult6.type).toBe('application/json'); @@ -515,7 +516,7 @@ describe('search tests', () => { // test tx search const searchResult8 = await supertest(api.server).get( - `/extended/v1/search/0x4567000000000000000000000000000000000000000000000000000000000000?include_metadata` + `/extended/v1/search/0x4567000000000000000000000000000000000000000000000000000000000000?include_metadata=true` ); expect(searchResult8.status).toBe(200); expect(searchResult8.type).toBe('application/json'); @@ -961,7 +962,7 @@ describe('search tests', () => { receipt_time: 123456, smart_contract_contract_id: contractAddr2, smart_contract_source_code: '(some-src)', - status: 1, + status: DbTxStatus.Pending, post_conditions: '0x01f5', fee_rate: 1234n, sponsored: false, @@ -1323,7 +1324,7 @@ describe('search tests', () => { // test address as a tx sender const searchResult1 = await supertest(api.server).get( - `/extended/v1/search/${addr1}?include_metadata` + `/extended/v1/search/${addr1}?include_metadata=true` ); expect(searchResult1.status).toBe(200); expect(searchResult1.type).toBe('application/json'); @@ -1350,7 +1351,7 @@ describe('search tests', () => { // test address as a stx tx recipient const searchResult2 = await supertest(api.server).get( - `/extended/v1/search/${addr2}?include_metadata` + `/extended/v1/search/${addr2}?include_metadata=true` ); expect(searchResult2.status).toBe(200); expect(searchResult2.type).toBe('application/json'); @@ -1377,7 +1378,7 @@ describe('search tests', () => { // test address as a stx event recipient const searchResult3 = await supertest(api.server).get( - `/extended/v1/search/${addr3}?include_metadata` + `/extended/v1/search/${addr3}?include_metadata=true` ); expect(searchResult3.status).toBe(200); expect(searchResult3.type).toBe('application/json'); @@ -1431,7 +1432,7 @@ describe('search tests', () => { // test address as a ft event recipient const searchResult5 = await supertest(api.server).get( - `/extended/v1/search/${addr5}?include_metadata` + `/extended/v1/search/${addr5}?include_metadata=true` ); expect(searchResult5.status).toBe(200); expect(searchResult5.type).toBe('application/json'); @@ -1459,7 +1460,7 @@ describe('search tests', () => { // test address as a ft event sender const searchResult6 = await supertest(api.server).get( - `/extended/v1/search/${addr6}?include_metadata` + `/extended/v1/search/${addr6}?include_metadata=true` ); expect(searchResult6.status).toBe(200); expect(searchResult6.type).toBe('application/json'); @@ -1475,7 +1476,7 @@ describe('search tests', () => { // test address as a nft event recipient const searchResult7 = await supertest(api.server).get( - `/extended/v1/search/${addr7}?include_metadata` + `/extended/v1/search/${addr7}?include_metadata=true` ); expect(searchResult7.status).toBe(200); expect(searchResult7.type).toBe('application/json'); @@ -1491,7 +1492,7 @@ describe('search tests', () => { // test address as a nft event sender const searchResult8 = await supertest(api.server).get( - `/extended/v1/search/${addr8}?include_metadata` + `/extended/v1/search/${addr8}?include_metadata=true` ); expect(searchResult8.status).toBe(200); expect(searchResult8.type).toBe('application/json'); @@ -1582,7 +1583,7 @@ describe('search tests', () => { receipt_time: 123456, smart_contract_contract_id: contractAddr2, smart_contract_source_code: '(some-src)', - status: 1, + status: DbTxStatus.Pending, post_conditions: '0x01f5', fee_rate: 1234n, sponsored: false, @@ -1594,7 +1595,7 @@ describe('search tests', () => { // test contract address associated with mempool tx const searchResult10 = await supertest(api.server).get( - `/extended/v1/search/${contractAddr2}?include_metadata` + `/extended/v1/search/${contractAddr2}?include_metadata=true` ); expect(searchResult10.status).toBe(200); expect(searchResult10.type).toBe('application/json'); @@ -1623,7 +1624,7 @@ describe('search tests', () => { }, sponsored: false, tx_id: '0x1111882200000000000000000000000000000000000000000000000000000000', - tx_status: 'success', + tx_status: 'pending', tx_type: 'smart_contract', }, }, @@ -1632,7 +1633,7 @@ describe('search tests', () => { // test contract address not found const searchResult11 = await supertest(api.server).get( - `/extended/v1/search/${contractAddr3}?include_metadata` + `/extended/v1/search/${contractAddr3}?include_metadata=true` ); expect(searchResult11.status).toBe(404); expect(searchResult11.type).toBe('application/json'); @@ -1646,7 +1647,7 @@ describe('search tests', () => { // test standard address not found const searchResult12 = await supertest(api.server).get( - `/extended/v1/search/${addr9}?include_metadata` + `/extended/v1/search/${addr9}?include_metadata=true` ); expect(searchResult12.status).toBe(404); expect(searchResult12.type).toBe('application/json'); @@ -1660,7 +1661,7 @@ describe('search tests', () => { // test invalid term const invalidTerm = 'bogus123'; const searchResult13 = await supertest(api.server).get( - `/extended/v1/search/${invalidTerm}?include_metadata` + `/extended/v1/search/${invalidTerm}?include_metadata=true` ); expect(searchResult13.status).toBe(404); expect(searchResult13.type).toBe('application/json'); diff --git a/src/tests/tx-tests.ts b/src/tests/tx-tests.ts index 88a91063d..c3cfcdf88 100644 --- a/src/tests/tx-tests.ts +++ b/src/tests/tx-tests.ts @@ -3802,7 +3802,7 @@ describe('tx tests', () => { anchor_mode: DbTxAnchorMode.Any, nonce: 0, raw_tx: bufferToHex(Buffer.from('')), - status: DbTxStatus.Success, + status: DbTxStatus.Pending, post_conditions: '0x01f5', fee_rate: 139200n, sponsored: false, @@ -3849,7 +3849,7 @@ describe('tx tests', () => { sender_address: 'SPX3DV9X9CGA8P14B3CMP2X8DBW6ZDXEAXDNPTER', sponsored: false, tx_id: mempoolTx1.tx_id, - tx_status: 'success', + tx_status: 'pending', tx_type: 'contract_call', }; const mempoolTxResult1 = await supertest(api.server).get(`/extended/v1/tx/${mempoolTx1.tx_id}`); @@ -3862,7 +3862,7 @@ describe('tx tests', () => { anchor_mode: DbTxAnchorMode.Any, nonce: 0, raw_tx: bufferToHex(Buffer.from('')), - status: DbTxStatus.Success, + status: DbTxStatus.Pending, post_conditions: '0x01f5', fee_rate: 139200n, sponsored: false, @@ -3910,7 +3910,7 @@ describe('tx tests', () => { sender_address: 'SPX3DV9X9CGA8P14B3CMP2X8DBW6ZDXEAXDNPTER', sponsored: false, tx_id: mempoolTx2.tx_id, - tx_status: 'success', + tx_status: 'pending', tx_type: 'contract_call', }; const mempoolTxResult2 = await supertest(api.server).get(`/extended/v1/tx/${mempoolTx2.tx_id}`); @@ -4062,7 +4062,7 @@ describe('tx tests', () => { ); expect(result.status).toBe(200); expect(result.type).toBe('application/json'); - let json = JSON.parse(result.text); + const json = JSON.parse(result.text); expect(json.total).toBe(2); expect(json.results[0]).toStrictEqual({ anchor_mode: 'any', @@ -4114,15 +4114,13 @@ describe('tx tests', () => { ); expect(result.status).toBe(404); expect(result.type).toBe('application/json'); - json = JSON.parse(result.text); - expect(json.errors).toBe('Block not found'); }); test('fetch transactions from block', async () => { const not_updated_tx_id = '0x1111'; - const tx_not_found = { - error: `could not find transaction by ID ${not_updated_tx_id}`, - }; + const tx_not_found = expect.objectContaining({ + message: `could not find transaction by ID`, + }); const block: DbBlock = { block_hash: '0x1234', index_block_hash: '0xdeadbeef', From 84ad0160fd65fa4af4bb0a08e964f4c3b0e07825 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 8 Aug 2024 14:29:13 +0200 Subject: [PATCH 40/56] test: misc rosetta fixes --- src/api/init.ts | 6 +- src/api/rosetta-validate.ts | 2 +- src/api/routes/rosetta/construction.ts | 2 +- ...osetta-account-balance-request.schema.json | 6 +- .../rosetta-account-identifier.schema.json | 19 +++ .../rosetta-account-response.schema.json | 6 +- .../json-schemas/rosetta-account.schema.json | 20 ++++ .../rosetta-amount-max-fee.schema.json | 19 +++ .../json-schemas/rosetta-amount.schema.json | 20 ++++ .../rosetta-block-identifier-hash.schema.json | 13 ++ ...osetta-block-identifier-height.schema.json | 13 ++ .../rosetta-block-identifier.schema.json | 12 ++ .../rosetta-block-request.schema.json | 4 +- .../rosetta-block-response.schema.json | 4 +- ...etta-block-transaction-request.schema.json | 6 +- ...tta-block-transaction-response.schema.json | 2 +- .../json-schemas/rosetta-block.schema.json | 41 +++++++ .../rosetta-coin-change.schema.json | 25 ++++ .../json-schemas/rosetta-coin.schema.json | 24 ++++ ...a-construction-combine-request.schema.json | 4 +- ...ta-construction-derive-request.schema.json | 4 +- ...a-construction-derive-response.schema.json | 2 +- ...etta-construction-hash-request.schema.json | 2 +- ...tta-construction-hash-response.schema.json | 2 +- ...-construction-metadata-request.schema.json | 6 +- ...construction-metadata-response.schema.json | 2 +- .../rosetta-construction-options.schema.json | 112 ++++++++++++++++++ ...tta-construction-parse-request.schema.json | 2 +- ...ta-construction-parse-response.schema.json | 4 +- ...-construction-payloads-request.schema.json | 6 +- ...construction-payloads-response.schema.json | 2 +- ...onstruction-preprocess-request.schema.json | 6 +- ...nstruction-preprocess-response.schema.json | 4 +- ...ta-construction-submit-request.schema.json | 2 +- ...a-construction-submit-response.schema.json | 2 +- .../json-schemas/rosetta-currency.schema.json | 21 ++++ .../rosetta-error-no-details.schema.json | 21 ++++ .../json-schemas/rosetta-error.schema.json | 33 ++++++ ...setta-genesis-block-identifier.schema.json | 17 +++ .../rosetta-mempool-request.schema.json | 2 +- .../rosetta-mempool-response.schema.json | 2 +- ...ta-mempool-transaction-request.schema.json | 4 +- ...a-mempool-transaction-response.schema.json | 2 +- ...osetta-network-identifier.schema copy.json | 40 +++++++ .../rosetta-network-identifier.schema.json | 40 +++++++ .../rosetta-network-list-response.schema.json | 2 +- ...osetta-network-options-request.schema.json | 2 +- ...setta-network-options-response.schema.json | 4 +- .../rosetta-network-peers.schema.json | 17 +++ ...rosetta-network-status-request.schema.json | 2 +- ...osetta-network-status-response.schema.json | 10 +- ...osetta-oldest-block-identifier.schema.json | 17 +++ .../rosetta-operation-identifier.schema.json | 17 +++ .../rosetta-operation-statuses.schema.json | 17 +++ .../rosetta-operation.schema.json | 40 +++++++ ...a-other-transaction-identifier.schema.json | 13 ++ ...osetta-parent-block-identifier.schema.json | 17 +++ ...setta-partial-block-identifier.schema.json | 16 +++ .../rosetta-public-key.schema.json | 18 +++ .../rosetta-related-operation.schema.json | 17 +++ .../rosetta-signature-type.schema.json | 6 + .../rosetta-signature.schema.json | 21 ++++ .../rosetta-signing-payload.schema.json | 24 ++++ .../rosetta-sub-account.schema.json | 17 +++ .../rosetta-sync-status.schema.json | 25 ++++ ...rosetta-transaction-identifier.schema.json | 13 ++ .../rosetta-transaction.schema.json | 37 ++++++ .../construction.ts | 4 +- src/tests-rosetta/api.ts | 6 +- 69 files changed, 888 insertions(+), 62 deletions(-) create mode 100644 src/rosetta/json-schemas/rosetta-account-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-account.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-amount-max-fee.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-amount.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-block-identifier-hash.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-block-identifier-height.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-block-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-block.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-coin-change.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-coin.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-construction-options.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-currency.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-error-no-details.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-error.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-genesis-block-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-network-identifier.schema copy.json create mode 100644 src/rosetta/json-schemas/rosetta-network-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-network-peers.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-oldest-block-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-operation-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-operation-statuses.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-operation.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-other-transaction-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-parent-block-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-partial-block-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-public-key.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-related-operation.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-signature-type.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-signature.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-signing-payload.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-sub-account.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-sync-status.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-transaction-identifier.schema.json create mode 100644 src/rosetta/json-schemas/rosetta-transaction.schema.json diff --git a/src/api/init.ts b/src/api/init.ts index cfdfbd1bb..84d21429c 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -281,7 +281,11 @@ export async function startApiServer(opts: { const server = createServer((req, res) => { if (rosettaPath.test(req.url as string)) { // handle with express - expressApp?.(req, res); + if (expressApp) { + expressApp(req, res); + } else { + res.writeHead(404).end(); + } } else { // handle with fastify fastify.server.emit('request', req, res); diff --git a/src/api/rosetta-validate.ts b/src/api/rosetta-validate.ts index 95e8d98b4..45bc1f203 100644 --- a/src/api/rosetta-validate.ts +++ b/src/api/rosetta-validate.ts @@ -152,7 +152,7 @@ export function makeRosettaError(notValid: ValidSchema): Readonly ...RosettaErrors[RosettaErrorsTypes.invalidOperation], details: { message: error }, }; - } else if (error.search(/should have required property/) != -1) { + } else if (error.search(/must have required property/) != -1) { return { ...RosettaErrors[RosettaErrorsTypes.invalidParams], details: { message: error }, diff --git a/src/api/routes/rosetta/construction.ts b/src/api/routes/rosetta/construction.ts index 09137e0b4..7a802c709 100644 --- a/src/api/routes/rosetta/construction.ts +++ b/src/api/routes/rosetta/construction.ts @@ -108,7 +108,7 @@ export function createRosettaConstructionRouter(db: PgStore, chainId: ChainID): const valid: ValidSchema = await rosettaValidateRequest(req.originalUrl, req.body, chainId); if (!valid.valid) { //TODO have to fix this and make error generic - if (valid.error?.includes('should be equal to one of the allowed values')) { + if (valid.error?.includes('must be equal to one of the allowed values')) { res.status(400).json(RosettaErrors[RosettaErrorsTypes.invalidCurveType]); return; } diff --git a/src/rosetta/json-schemas/rosetta-account-balance-request.schema.json b/src/rosetta/json-schemas/rosetta-account-balance-request.schema.json index 88a5c4872..b996b5647 100644 --- a/src/rosetta/json-schemas/rosetta-account-balance-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-account-balance-request.schema.json @@ -6,13 +6,13 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "account_identifier": { - "$ref": "./../../entities/rosetta/rosetta-account.schema.json" + "$ref": "./rosetta-account.schema.json" }, "block_identifier": { - "$ref": "./../../entities/rosetta/rosetta-partial-block-identifier.schema.json" + "$ref": "./rosetta-partial-block-identifier.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-account-identifier.schema.json b/src/rosetta/json-schemas/rosetta-account-identifier.schema.json new file mode 100644 index 000000000..b4eb9bb7b --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-account-identifier.schema.json @@ -0,0 +1,19 @@ +{ + "type": "object", + "title": "RosettaAccountIdentifier", + "description": "The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated).", + "required": ["address"], + "properties": { + "address": { + "type": "string", + "description": "The address may be a cryptographic public key (or some encoding of it) or a provided username." + }, + "sub_account": { + "$ref": "./rosetta-sub-account.schema.json" + }, + "metadata": { + "type": "object", + "description": "Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-account-response.schema.json b/src/rosetta/json-schemas/rosetta-account-response.schema.json index 50e779bb2..01f71cbd3 100644 --- a/src/rosetta/json-schemas/rosetta-account-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-account-response.schema.json @@ -6,20 +6,20 @@ "additionalProperties": false, "properties": { "block_identifier": { - "$ref": "./../../entities/rosetta/rosetta-block-identifier.schema.json" + "$ref": "./rosetta-block-identifier.schema.json" }, "balances": { "type": "array", "description": "A single account balance may have multiple currencies", "items": { - "$ref": "./../../entities/rosetta/rosetta-amount.schema.json" + "$ref": "./rosetta-amount.schema.json" } }, "coins": { "type": "array", "description": "If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs.", "items": { - "$ref": "./../../entities/rosetta/rosetta-coin.schema.json" + "$ref": "./rosetta-coin.schema.json" } }, "metadata": { diff --git a/src/rosetta/json-schemas/rosetta-account.schema.json b/src/rosetta/json-schemas/rosetta-account.schema.json new file mode 100644 index 000000000..fa2a2ca0d --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-account.schema.json @@ -0,0 +1,20 @@ +{ + "type": "object", + "title": "RosettaAccount", + "description": "The account_identifier uniquely identifies an account within a network. All fields in the account_identifier are utilized to determine this uniqueness (including the metadata field, if populated).", + "required": ["address"], + "additionalProperties": false, + "properties": { + "address": { + "type": "string", + "description": "The address may be a cryptographic public key (or some encoding of it) or a provided username." + }, + "sub_account": { + "$ref": "./rosetta-sub-account.schema.json" + }, + "metadata": { + "type": "object", + "description": "Blockchains that utilize a username model (where the address is not a derivative of a cryptographic public key) should specify the public key(s) owned by the address in metadata." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-amount-max-fee.schema.json b/src/rosetta/json-schemas/rosetta-amount-max-fee.schema.json new file mode 100644 index 000000000..1fe85737f --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-amount-max-fee.schema.json @@ -0,0 +1,19 @@ +{ + "type": "object", + "title": "RosettaMaxFeeAmount", + "description": "Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency.", + "required": ["value", "currency"], + "properties": { + "value": { + "type": "string", + "description": "Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000." + }, + "currency": { + "$ref": "./rosetta-currency.schema.json" + }, + "metadata": { + "type": "object", + "description": "" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-amount.schema.json b/src/rosetta/json-schemas/rosetta-amount.schema.json new file mode 100644 index 000000000..420821166 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-amount.schema.json @@ -0,0 +1,20 @@ +{ + "type": "object", + "title": "RosettaAmount", + "additionalProperties": false, + "description": "Amount is some Value of a Currency. It is considered invalid to specify a Value without a Currency.", + "required": ["value", "currency"], + "properties": { + "value": { + "type": "string", + "description": "Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000." + }, + "currency": { + "$ref": "./rosetta-currency.schema.json" + }, + "metadata": { + "type": "object", + "description": "" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-block-identifier-hash.schema.json b/src/rosetta/json-schemas/rosetta-block-identifier-hash.schema.json new file mode 100644 index 000000000..b2fd14978 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-block-identifier-hash.schema.json @@ -0,0 +1,13 @@ +{ + "type": "object", + "title": "RosettaBlockIdentifierHash", + "description": "This is also known as the block hash.", + "additionalProperties": false, + "required": ["hash"], + "properties": { + "hash": { + "type": "string", + "description": "This is also known as the block hash." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-block-identifier-height.schema.json b/src/rosetta/json-schemas/rosetta-block-identifier-height.schema.json new file mode 100644 index 000000000..9460202f9 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-block-identifier-height.schema.json @@ -0,0 +1,13 @@ +{ + "type": "object", + "title": "RosettaBlockIdentifierHeight", + "description": "This is also known as the block height.", + "additionalProperties": false, + "required": ["index"], + "properties": { + "index": { + "type": "integer", + "description": "This is also known as the block height." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-block-identifier.schema.json b/src/rosetta/json-schemas/rosetta-block-identifier.schema.json new file mode 100644 index 000000000..33c64bc82 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-block-identifier.schema.json @@ -0,0 +1,12 @@ +{ + "title": "RosettaBlockIdentifier", + "description": "The block_identifier uniquely identifies a block in a particular network.", + "allOf": [ + { + "$ref": "./rosetta-block-identifier-hash.schema.json" + }, + { + "$ref": "./rosetta-block-identifier-height.schema.json" + } + ] +} diff --git a/src/rosetta/json-schemas/rosetta-block-request.schema.json b/src/rosetta/json-schemas/rosetta-block-request.schema.json index 3f15876e4..99ddef83c 100644 --- a/src/rosetta/json-schemas/rosetta-block-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-block-request.schema.json @@ -6,10 +6,10 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "block_identifier": { - "$ref": "./../../entities/rosetta/rosetta-partial-block-identifier.schema.json" + "$ref": "./rosetta-partial-block-identifier.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-block-response.schema.json b/src/rosetta/json-schemas/rosetta-block-response.schema.json index e0b7e8276..c58da95e2 100644 --- a/src/rosetta/json-schemas/rosetta-block-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-block-response.schema.json @@ -5,13 +5,13 @@ "description": "A BlockResponse includes a fully-populated block or a partially-populated block with a list of other transactions to fetch (other_transactions). As a result of the consensus algorithm of some blockchains, blocks can be omitted (i.e. certain block indexes can be skipped). If a query for one of these omitted indexes is made, the response should not include a Block object. It is VERY important to note that blocks MUST still form a canonical, connected chain of blocks where each block has a unique index. In other words, the PartialBlockIdentifier of a block after an omitted block should reference the last non-omitted block.", "properties": { "block": { - "$ref": "./../../entities/rosetta/rosetta-block.schema.json" + "$ref": "./rosetta-block.schema.json" }, "other_transactions": { "type": "array", "description": "Some blockchains may require additional transactions to be fetched that weren't returned in the block response (ex: block only returns transaction hashes). For blockchains with a lot of transactions in each block, this can be very useful as consumers can concurrently fetch all transactions returned.", "items": { - "$ref": "./../../entities/rosetta/rosetta-other-transaction-identifier.schema.json" + "$ref": "./rosetta-other-transaction-identifier.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-block-transaction-request.schema.json b/src/rosetta/json-schemas/rosetta-block-transaction-request.schema.json index 3f7585aeb..3061f2100 100644 --- a/src/rosetta/json-schemas/rosetta-block-transaction-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-block-transaction-request.schema.json @@ -6,13 +6,13 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "block_identifier": { - "$ref": "./../../entities/rosetta/rosetta-partial-block-identifier.schema.json" + "$ref": "./rosetta-partial-block-identifier.schema.json" }, "transaction_identifier": { - "$ref": "./../../entities/rosetta/rosetta-transaction-identifier.schema.json" + "$ref": "./rosetta-transaction-identifier.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-block-transaction-response.schema.json b/src/rosetta/json-schemas/rosetta-block-transaction-response.schema.json index bb17f74e6..dec1d62fd 100644 --- a/src/rosetta/json-schemas/rosetta-block-transaction-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-block-transaction-response.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "transaction": { - "$ref": "./../../entities/rosetta/rosetta-transaction.schema.json" + "$ref": "./rosetta-transaction.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-block.schema.json b/src/rosetta/json-schemas/rosetta-block.schema.json new file mode 100644 index 000000000..9f9f92bd4 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-block.schema.json @@ -0,0 +1,41 @@ +{ + "type": "object", + "title": "RosettaBlock", + "description": "Blocks contain an array of Transactions that occurred at a particular BlockIdentifier. A hard requirement for blocks returned by Rosetta implementations is that they MUST be inalterable: once a client has requested and received a block identified by a specific BlockIndentifier, all future calls for that same BlockIdentifier must return the same block contents.", + "required": ["block_identifier", "parent_block_identifier", "timestamp", "transactions"], + "additionalProperties": false, + "properties": { + "block_identifier": { + "$ref": "./rosetta-block-identifier.schema.json" + }, + "parent_block_identifier": { + "$ref": "./rosetta-parent-block-identifier.schema.json" + }, + "timestamp": { + "type": "integer", + "description": "The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second." + }, + "transactions": { + "type": "array", + "description": "All the transactions in the block", + "items": { + "$ref": "./rosetta-transaction.schema.json" + } + }, + "metadata": { + "type": "object", + "description": "meta data", + "required": ["transactions_root", "difficulty"], + "properties": { + "transactions_root": { + "type": "string", + "description": "" + }, + "difficulty": { + "type": "string", + "description": "" + } + } + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-coin-change.schema.json b/src/rosetta/json-schemas/rosetta-coin-change.schema.json new file mode 100644 index 000000000..b91519f83 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-coin-change.schema.json @@ -0,0 +1,25 @@ +{ + "type": "object", + "title": "RosettaCoinChange", + "description": "CoinChange is used to represent a change in state of a some coin identified by a coin_identifier. This object is part of the Operation model and must be populated for UTXO-based blockchains. Coincidentally, this abstraction of UTXOs allows for supporting both account-based transfers and UTXO-based transfers on the same blockchain (when a transfer is account-based, don't populate this model).", + "required": ["coin_identifier", "coin_action"], + "additionalProperties": false, + "properties": { + "coin_identifier": { + "type": "object", + "description": "CoinIdentifier uniquely identifies a Coin.", + "required": ["identifier"], + "properties": { + "identifier": { + "type": "string", + "description": "Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index." + } + } + }, + "coin_action": { + "type": "string", + "description": "CoinActions are different state changes that a Coin can undergo. When a Coin is created, it is coin_created. When a Coin is spent, it is coin_spent. It is assumed that a single Coin cannot be created or spent more than once.", + "enum": ["coin_created", "coin_spent"] + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-coin.schema.json b/src/rosetta/json-schemas/rosetta-coin.schema.json new file mode 100644 index 000000000..b298e00a4 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-coin.schema.json @@ -0,0 +1,24 @@ +{ + "type": "object", + "title": "RosettaCoin", + "additionalProperties": false, + "description": "If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs.", + "required": ["coin_identifier", "amount"], + "properties": { + "coin_identifier": { + "type": "object", + "description": "CoinIdentifier uniquely identifies a Coin.", + "required": ["identifier"], + "additionalProperties": false, + "properties": { + "identifier": { + "type": "string", + "description": "Identifier should be populated with a globally unique identifier of a Coin. In Bitcoin, this identifier would be transaction_hash:index." + } + } + }, + "amount": { + "$ref": "./rosetta-amount.schema.json" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-construction-combine-request.schema.json b/src/rosetta/json-schemas/rosetta-construction-combine-request.schema.json index 4b5889ab0..dee325c20 100644 --- a/src/rosetta/json-schemas/rosetta-construction-combine-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-combine-request.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "unsigned_transaction": { "type": "string" @@ -14,7 +14,7 @@ "signatures": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-signature.schema.json" + "$ref": "./rosetta-signature.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-construction-derive-request.schema.json b/src/rosetta/json-schemas/rosetta-construction-derive-request.schema.json index c5a0a2ff5..ef7e2fe6d 100644 --- a/src/rosetta/json-schemas/rosetta-construction-derive-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-derive-request.schema.json @@ -6,10 +6,10 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "public_key": { - "$ref": "./../../entities/rosetta/rosetta-public-key.schema.json" + "$ref": "./rosetta-public-key.schema.json" }, "metadata": { "type": "object" diff --git a/src/rosetta/json-schemas/rosetta-construction-derive-response.schema.json b/src/rosetta/json-schemas/rosetta-construction-derive-response.schema.json index 18fea836e..20fcdca40 100644 --- a/src/rosetta/json-schemas/rosetta-construction-derive-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-derive-response.schema.json @@ -9,7 +9,7 @@ "description": "[DEPRECATED by account_identifier in v1.4.4] Address in network-specific format." }, "account_identifier": { - "$ref": "./../../entities/rosetta/rosetta-account-identifier.schema.json" + "$ref": "./rosetta-account-identifier.schema.json" }, "metadata": { "type": "object" diff --git a/src/rosetta/json-schemas/rosetta-construction-hash-request.schema.json b/src/rosetta/json-schemas/rosetta-construction-hash-request.schema.json index 4563151a0..e8f23c1f4 100644 --- a/src/rosetta/json-schemas/rosetta-construction-hash-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-hash-request.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "signed_transaction": { "type": "string", diff --git a/src/rosetta/json-schemas/rosetta-construction-hash-response.schema.json b/src/rosetta/json-schemas/rosetta-construction-hash-response.schema.json index e8ea90b87..24408b1da 100644 --- a/src/rosetta/json-schemas/rosetta-construction-hash-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-hash-response.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "transaction_identifier": { - "$ref": "./../../entities/rosetta/rosetta-transaction-identifier.schema.json" + "$ref": "./rosetta-transaction-identifier.schema.json" }, "metadata": { "type": "object" diff --git a/src/rosetta/json-schemas/rosetta-construction-metadata-request.schema.json b/src/rosetta/json-schemas/rosetta-construction-metadata-request.schema.json index 4a7e5a49e..eebd4374e 100644 --- a/src/rosetta/json-schemas/rosetta-construction-metadata-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-metadata-request.schema.json @@ -6,15 +6,15 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "options": { - "$ref": "./../../entities/rosetta/rosetta-construction-options.schema.json" + "$ref": "./rosetta-construction-options.schema.json" }, "public_keys": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-public-key.schema.json" + "$ref": "./rosetta-public-key.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-construction-metadata-response.schema.json b/src/rosetta/json-schemas/rosetta-construction-metadata-response.schema.json index 850ca1d65..6f0012cea 100644 --- a/src/rosetta/json-schemas/rosetta-construction-metadata-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-metadata-response.schema.json @@ -19,7 +19,7 @@ "suggested_fee": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-amount.schema.json" + "$ref": "./rosetta-amount.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-construction-options.schema.json b/src/rosetta/json-schemas/rosetta-construction-options.schema.json new file mode 100644 index 000000000..76ff905ef --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-construction-options.schema.json @@ -0,0 +1,112 @@ +{ + "title": "RosettaOptions", + "type": "object", + "description": "The options that will be sent directly to /construction/metadata by the caller.", + "additionalProperties": false, + "properties": { + "sender_address": { + "type": "string", + "description": "sender's address " + }, + "type": { + "type": "string", + "description": "Type of operation e.g transfer" + }, + "status": { + "type": "string", + "description": "This value indicates the state of the operations" + }, + "token_transfer_recipient_address": { + "type": "string", + "description": "Recipient's address" + }, + "amount": { + "type": "string", + "description": "Amount to be transfered." + }, + "symbol": { + "type": "string", + "description": "Currency symbol e.g STX" + }, + "decimals": { + "type": "integer", + "description": "Number of decimal places" + }, + "gas_limit": { + "type": "number", + "description": "Maximum price a user is willing to pay." + }, + "gas_price": { + "type": "number", + "description": "Cost necessary to perform a transaction on the network" + }, + "suggested_fee_multiplier": { + "type": "number", + "description": " A suggested fee multiplier to indicate that the suggested fee should be scaled. This may be used to set higher fees for urgent transactions or to pay lower fees when there is less urgency." + }, + "max_fee": { + "type": "string", + "description": "Maximum fee user is willing to pay" + }, + "fee": { + "type": "string", + "description": "Fee for this transaction" + }, + "size": { + "type": "integer", + "description": "Transaction approximative size (used to calculate total fee)." + }, + "memo": { + "type": "string", + "description": "STX token transfer memo." + }, + "number_of_cycles": { + "type": "integer", + "description": "Number of cycles when stacking." + }, + "contract_address": { + "type": "string", + "description": "Address of the contract to call." + }, + "contract_name": { + "type": "string", + "description": "Name of the contract to call." + }, + "burn_block_height": { + "type": "integer", + "description": "Set the burnchain (BTC) block for stacking lock to start." + }, + "reward_cycle_id": { + "type": "integer", + "description": "The reward cycle ID for stacking transaction." + }, + "delegate_to": { + "type": "string", + "description": "Delegator address for when calling `delegate-stacking`." + }, + "pox_addr": { + "type": "string", + "description": "The reward address for stacking transaction. It should be a valid Bitcoin address" + }, + "signer_key": { + "type": "string", + "description": "The hex-encoded signer key (buff 33) for PoX." + }, + "signer_private_key": { + "type": "string", + "description": "The hex-encoded signer private key for PoX. Specify either this or `signer_signature`, otherwise the PoX transaction requires allow-listing from the signer." + }, + "signer_signature": { + "type": "string", + "description": "The hex-encoded signer signature for PoX. Specify either this or `signer_private_key`, otherwise the PoX transaction requires allow-listing from the signer." + }, + "pox_max_amount": { + "type": "string", + "description": "The maximum amount of STX to stack for PoX. If not specified, the `amount` will be used as the `max-amount` for the PoX transaction." + }, + "pox_auth_id": { + "type": "string", + "description": "The auth ID for the PoX transaction. If not specified, a random value will be generated." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-construction-parse-request.schema.json b/src/rosetta/json-schemas/rosetta-construction-parse-request.schema.json index 9643e5c7d..e0a071845 100644 --- a/src/rosetta/json-schemas/rosetta-construction-parse-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-parse-request.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "signed": { "type": "boolean", diff --git a/src/rosetta/json-schemas/rosetta-construction-parse-response.schema.json b/src/rosetta/json-schemas/rosetta-construction-parse-response.schema.json index e384d3045..9a97e1143 100644 --- a/src/rosetta/json-schemas/rosetta-construction-parse-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-parse-response.schema.json @@ -8,7 +8,7 @@ "operations": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-operation.schema.json" + "$ref": "./rosetta-operation.schema.json" } }, "signers": { @@ -25,7 +25,7 @@ "account_identifier_signers": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-account-identifier.schema.json" + "$ref": "./rosetta-account-identifier.schema.json" } }, "metadata": { diff --git a/src/rosetta/json-schemas/rosetta-construction-payloads-request.schema.json b/src/rosetta/json-schemas/rosetta-construction-payloads-request.schema.json index 0bfa46c70..967c59e4b 100644 --- a/src/rosetta/json-schemas/rosetta-construction-payloads-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-payloads-request.schema.json @@ -6,18 +6,18 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "operations": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-operation.schema.json" + "$ref": "./rosetta-operation.schema.json" } }, "public_keys": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-public-key.schema.json" + "$ref": "./rosetta-public-key.schema.json" } }, "metadata": { diff --git a/src/rosetta/json-schemas/rosetta-construction-payloads-response.schema.json b/src/rosetta/json-schemas/rosetta-construction-payloads-response.schema.json index 69a17155a..ca63b6367 100644 --- a/src/rosetta/json-schemas/rosetta-construction-payloads-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-payloads-response.schema.json @@ -13,7 +13,7 @@ "type": "array", "description": "An array of payloads that must be signed by the caller", "items": { - "$ref": "./../../entities/rosetta/rosetta-signing-payload.schema.json" + "$ref": "./rosetta-signing-payload.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-construction-preprocess-request.schema.json b/src/rosetta/json-schemas/rosetta-construction-preprocess-request.schema.json index 9b1132242..6b2160432 100644 --- a/src/rosetta/json-schemas/rosetta-construction-preprocess-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-preprocess-request.schema.json @@ -6,12 +6,12 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "operations": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-operation.schema.json" + "$ref": "./rosetta-operation.schema.json" } }, "metadata": { @@ -20,7 +20,7 @@ "max_fee": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-amount-max-fee.schema.json" + "$ref": "./rosetta-amount-max-fee.schema.json" } }, "suggested_fee_multiplier": { diff --git a/src/rosetta/json-schemas/rosetta-construction-preprocess-response.schema.json b/src/rosetta/json-schemas/rosetta-construction-preprocess-response.schema.json index 874a1937b..c5dde259d 100644 --- a/src/rosetta/json-schemas/rosetta-construction-preprocess-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-preprocess-response.schema.json @@ -5,12 +5,12 @@ "description": "RosettaConstructionPreprocessResponse contains options that will be sent unmodified to /construction/metadata. If it is not necessary to make a request to /construction/metadata, options should be omitted. Some blockchains require the PublicKey of particular AccountIdentifiers to construct a valid transaction. To fetch these PublicKeys, populate required_public_keys with the AccountIdentifiers associated with the desired PublicKeys. If it is not necessary to retrieve any PublicKeys for construction, required_public_keys should be omitted.", "properties": { "options": { - "$ref": "./../../entities/rosetta/rosetta-construction-options.schema.json" + "$ref": "./rosetta-construction-options.schema.json" }, "required_public_keys": { "type": "array", "items": { - "$ref": "./../../entities/rosetta/rosetta-account.schema.json" + "$ref": "./rosetta-account.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-construction-submit-request.schema.json b/src/rosetta/json-schemas/rosetta-construction-submit-request.schema.json index 0ccee8b4f..8b76fdd8b 100644 --- a/src/rosetta/json-schemas/rosetta-construction-submit-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-submit-request.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "signed_transaction": { "type": "string", diff --git a/src/rosetta/json-schemas/rosetta-construction-submit-response.schema.json b/src/rosetta/json-schemas/rosetta-construction-submit-response.schema.json index 1e720de9b..0f2b50f9c 100644 --- a/src/rosetta/json-schemas/rosetta-construction-submit-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-construction-submit-response.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "transaction_identifier": { - "$ref": "./../../entities/rosetta/rosetta-transaction-identifier.schema.json" + "$ref": "./rosetta-transaction-identifier.schema.json" }, "metadata": { "type": "object" diff --git a/src/rosetta/json-schemas/rosetta-currency.schema.json b/src/rosetta/json-schemas/rosetta-currency.schema.json new file mode 100644 index 000000000..1763aec5d --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-currency.schema.json @@ -0,0 +1,21 @@ +{ + "title": "RosettaCurrency", + "type": "object", + "additionalProperties": false, + "description": "Currency is composed of a canonical Symbol and Decimals. This Decimals value is used to convert an Amount.Value from atomic units (Satoshis) to standard units (Bitcoins).", + "required": ["symbol", "decimals"], + "properties": { + "symbol": { + "type": "string", + "description": "Canonical symbol associated with a currency." + }, + "decimals": { + "type": "integer", + "description": "Number of decimal places in the standard unit representation of the amount. For example, BTC has 8 decimals. Note that it is not possible to represent the value of some currency in atomic units that is not base 10." + }, + "metadata": { + "type": "object", + "description": "Any additional information related to the currency itself. For example, it would be useful to populate this object with the contract address of an ERC-20 token." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-error-no-details.schema.json b/src/rosetta/json-schemas/rosetta-error-no-details.schema.json new file mode 100644 index 000000000..797ceb1c3 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-error-no-details.schema.json @@ -0,0 +1,21 @@ +{ + "type": "object", + "title": "RosettaErrorNoDetails", + "description": "Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields.", + "required": ["code", "message", "retriable"], + "additionalProperties": false, + "properties": { + "code": { + "type": "integer", + "description": "Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code." + }, + "message": { + "type": "string", + "description": "Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field." + }, + "retriable": { + "type": "boolean", + "description": "An error is retriable if the same request may succeed if submitted again." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-error.schema.json b/src/rosetta/json-schemas/rosetta-error.schema.json new file mode 100644 index 000000000..c45c31f91 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-error.schema.json @@ -0,0 +1,33 @@ +{ + "type": "object", + "title": "RosettaError", + "description": "Instead of utilizing HTTP status codes to describe node errors (which often do not have a good analog), rich errors are returned using this object. Both the code and message fields can be individually used to correctly identify an error. Implementations MUST use unique values for both fields.", + "additionalProperties": false, + "required": ["code", "message", "retriable"], + "properties": { + "code": { + "type": "integer", + "description": "Code is a network-specific error code. If desired, this code can be equivalent to an HTTP status code." + }, + "message": { + "type": "string", + "description": "Message is a network-specific error message. The message MUST NOT change for a given code. In particular, this means that any contextual information should be included in the details field." + }, + "retriable": { + "type": "boolean", + "description": "An error is retriable if the same request may succeed if submitted again." + }, + "details": { + "type": "object", + "description": "Often times it is useful to return context specific to the request that caused the error (i.e. a sample of the stack trace or impacted account) in addition to the standard error message.", + "properties": { + "address": { + "type": "string" + }, + "error": { + "type": "string" + } + } + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-genesis-block-identifier.schema.json b/src/rosetta/json-schemas/rosetta-genesis-block-identifier.schema.json new file mode 100644 index 000000000..16842b16a --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-genesis-block-identifier.schema.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "title": "RosettaGenesisBlockIdentifier", + "description": "The block_identifier uniquely identifies a block in a particular network.", + "required": ["index", "hash"], + "additionalProperties": false, + "properties": { + "index": { + "type": "integer", + "description": "This is also known as the block height." + }, + "hash": { + "type": "string", + "description": "Block hash" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-mempool-request.schema.json b/src/rosetta/json-schemas/rosetta-mempool-request.schema.json index a8aaf0004..9fe68918a 100644 --- a/src/rosetta/json-schemas/rosetta-mempool-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-mempool-request.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "metadata": { "type": "object" diff --git a/src/rosetta/json-schemas/rosetta-mempool-response.schema.json b/src/rosetta/json-schemas/rosetta-mempool-response.schema.json index 2729914b9..e153dc9d8 100644 --- a/src/rosetta/json-schemas/rosetta-mempool-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-mempool-response.schema.json @@ -9,7 +9,7 @@ "type": "array", "description": "", "items": { - "$ref": "./../../entities/rosetta/rosetta-transaction-identifier.schema.json" + "$ref": "./rosetta-transaction-identifier.schema.json" } }, "metadata": { diff --git a/src/rosetta/json-schemas/rosetta-mempool-transaction-request.schema.json b/src/rosetta/json-schemas/rosetta-mempool-transaction-request.schema.json index cf9185ce4..10ffdda2b 100644 --- a/src/rosetta/json-schemas/rosetta-mempool-transaction-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-mempool-transaction-request.schema.json @@ -6,10 +6,10 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "transaction_identifier": { - "$ref": "./../../entities/rosetta/rosetta-transaction-identifier.schema.json" + "$ref": "./rosetta-transaction-identifier.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-mempool-transaction-response.schema.json b/src/rosetta/json-schemas/rosetta-mempool-transaction-response.schema.json index 170a7ecbe..63e7435da 100644 --- a/src/rosetta/json-schemas/rosetta-mempool-transaction-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-mempool-transaction-response.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "transaction": { - "$ref": "./../../entities/rosetta/rosetta-transaction.schema.json" + "$ref": "./rosetta-transaction.schema.json" }, "metadata": { "type": "object" diff --git a/src/rosetta/json-schemas/rosetta-network-identifier.schema copy.json b/src/rosetta/json-schemas/rosetta-network-identifier.schema copy.json new file mode 100644 index 000000000..76833459f --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-network-identifier.schema copy.json @@ -0,0 +1,40 @@ +{ + "type": "object", + "title": "NetworkIdentifier", + "description": "The network_identifier specifies which network a particular object is associated with.", + "required": ["blockchain", "network"], + "additionalProperties": false, + "properties": { + "blockchain": { + "type": "string", + "description": "Blockchain name" + }, + "network": { + "type": "string", + "description": "If a blockchain has a specific chain-id or network identifier, it should go in this field. It is up to the client to determine which network-specific identifier is mainnet or testnet." + }, + "sub_network_identifier": { + "type": "object", + "description": "In blockchains with sharded state, the SubNetworkIdentifier is required to query some object on a specific shard. This identifier is optional for all non-sharded blockchains.", + "required": ["network"], + "additionalProperties": false, + "properties": { + "network": { + "type": "string", + "description": "Network name" + }, + "metadata": { + "type": "object", + "description": "Meta data from subnetwork identifier", + "required": ["producer"], + "properties": { + "producer": { + "type": "string", + "description": "producer" + } + } + } + } + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-network-identifier.schema.json b/src/rosetta/json-schemas/rosetta-network-identifier.schema.json new file mode 100644 index 000000000..76833459f --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-network-identifier.schema.json @@ -0,0 +1,40 @@ +{ + "type": "object", + "title": "NetworkIdentifier", + "description": "The network_identifier specifies which network a particular object is associated with.", + "required": ["blockchain", "network"], + "additionalProperties": false, + "properties": { + "blockchain": { + "type": "string", + "description": "Blockchain name" + }, + "network": { + "type": "string", + "description": "If a blockchain has a specific chain-id or network identifier, it should go in this field. It is up to the client to determine which network-specific identifier is mainnet or testnet." + }, + "sub_network_identifier": { + "type": "object", + "description": "In blockchains with sharded state, the SubNetworkIdentifier is required to query some object on a specific shard. This identifier is optional for all non-sharded blockchains.", + "required": ["network"], + "additionalProperties": false, + "properties": { + "network": { + "type": "string", + "description": "Network name" + }, + "metadata": { + "type": "object", + "description": "Meta data from subnetwork identifier", + "required": ["producer"], + "properties": { + "producer": { + "type": "string", + "description": "producer" + } + } + } + } + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-network-list-response.schema.json b/src/rosetta/json-schemas/rosetta-network-list-response.schema.json index 94e65fc27..53c5ae521 100644 --- a/src/rosetta/json-schemas/rosetta-network-list-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-network-list-response.schema.json @@ -9,7 +9,7 @@ "type": "array", "description": "The network_identifier specifies which network a particular object is associated with.", "items": { - "$ref": "./../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" } } } diff --git a/src/rosetta/json-schemas/rosetta-network-options-request.schema.json b/src/rosetta/json-schemas/rosetta-network-options-request.schema.json index c514bec63..f54ea8d8d 100644 --- a/src/rosetta/json-schemas/rosetta-network-options-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-network-options-request.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "metadata": { "type": "object" diff --git a/src/rosetta/json-schemas/rosetta-network-options-response.schema.json b/src/rosetta/json-schemas/rosetta-network-options-response.schema.json index 159c461b9..ec816dda0 100644 --- a/src/rosetta/json-schemas/rosetta-network-options-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-network-options-response.schema.json @@ -39,7 +39,7 @@ "type": "array", "description": "All Operation.Status this implementation supports. Any status that is returned during parsing that is not listed here will cause client validation to error.", "items": { - "$ref": "./../../entities/rosetta/rosetta-operation-statuses.schema.json" + "$ref": "./rosetta-operation-statuses.schema.json" } }, "operation_types": { @@ -57,7 +57,7 @@ "type": "array", "description": "All Errors that this implementation could return. Any error that is returned during parsing that is not listed here will cause client validation to error.", "items": { - "$ref": "./../../entities/rosetta/rosetta-error-no-details.schema.json" + "$ref": "./rosetta-error-no-details.schema.json" } }, "historical_balance_lookup": { diff --git a/src/rosetta/json-schemas/rosetta-network-peers.schema.json b/src/rosetta/json-schemas/rosetta-network-peers.schema.json new file mode 100644 index 000000000..8a66dda33 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-network-peers.schema.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "title": "RosettaPeers", + "description": "A Peer is a representation of a node's peer.", + "required": ["peer_id"], + "additionalProperties": false, + "properties": { + "peer_id": { + "type": "string", + "description": "peer id" + }, + "metadata": { + "type": "object", + "description": "meta data" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-network-status-request.schema.json b/src/rosetta/json-schemas/rosetta-network-status-request.schema.json index 94f6a290e..2921b5c90 100644 --- a/src/rosetta/json-schemas/rosetta-network-status-request.schema.json +++ b/src/rosetta/json-schemas/rosetta-network-status-request.schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "network_identifier": { - "$ref": "../../entities/rosetta/rosetta-network-identifier.schema.json" + "$ref": "./rosetta-network-identifier.schema.json" }, "metadata": { "type": "object" diff --git a/src/rosetta/json-schemas/rosetta-network-status-response.schema.json b/src/rosetta/json-schemas/rosetta-network-status-response.schema.json index a272d4048..eb616ae5b 100644 --- a/src/rosetta/json-schemas/rosetta-network-status-response.schema.json +++ b/src/rosetta/json-schemas/rosetta-network-status-response.schema.json @@ -11,26 +11,26 @@ ], "properties": { "current_block_identifier": { - "$ref": "./../../entities/rosetta/rosetta-block-identifier.schema.json" + "$ref": "./rosetta-block-identifier.schema.json" }, "current_block_timestamp": { "type": "integer", "description": "The timestamp of the block in milliseconds since the Unix Epoch. The timestamp is stored in milliseconds because some blockchains produce blocks more often than once a second." }, "genesis_block_identifier": { - "$ref": "./../../entities/rosetta/rosetta-genesis-block-identifier.schema.json" + "$ref": "./rosetta-genesis-block-identifier.schema.json" }, "oldest_block_identifier": { - "$ref": "./../../entities/rosetta/rosetta-oldest-block-identifier.schema.json" + "$ref": "./rosetta-oldest-block-identifier.schema.json" }, "sync_status": { - "$ref": "./../../entities/rosetta/rosetta-sync-status.schema.json" + "$ref": "./rosetta-sync-status.schema.json" }, "peers": { "type": "array", "description": "Peers information", "items": { - "$ref": "./../../entities/rosetta/rosetta-network-peers.schema.json" + "$ref": "./rosetta-network-peers.schema.json" } }, "current_burn_block_height": { diff --git a/src/rosetta/json-schemas/rosetta-oldest-block-identifier.schema.json b/src/rosetta/json-schemas/rosetta-oldest-block-identifier.schema.json new file mode 100644 index 000000000..6a152393e --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-oldest-block-identifier.schema.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "title": "RosettaOldestBlockIdentifier", + "description": "The block_identifier uniquely identifies a block in a particular network.", + "required": ["index", "hash"], + "additionalProperties": false, + "properties": { + "index": { + "type": "integer", + "description": "This is also known as the block height." + }, + "hash": { + "type": "string", + "description": "Block hash" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-operation-identifier.schema.json b/src/rosetta/json-schemas/rosetta-operation-identifier.schema.json new file mode 100644 index 000000000..08f040954 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-operation-identifier.schema.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "title": "RosettaOperationIdentifier", + "description": "The operation_identifier uniquely identifies an operation within a transaction.", + "required": ["index"], + "additionalProperties": false, + "properties": { + "index": { + "type": "integer", + "description": "The operation index is used to ensure each operation has a unique identifier within a transaction. This index is only relative to the transaction and NOT GLOBAL. The operations in each transaction should start from index 0. To clarify, there may not be any notion of an operation index in the blockchain being described." + }, + "network_index": { + "type": "integer", + "description": "Some blockchains specify an operation index that is essential for client use. For example, Bitcoin uses a network_index to identify which UTXO was used in a transaction. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains)." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-operation-statuses.schema.json b/src/rosetta/json-schemas/rosetta-operation-statuses.schema.json new file mode 100644 index 000000000..bc3f23dc3 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-operation-statuses.schema.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "title": "RosettaOperationStatus", + "description": "OperationStatus is utilized to indicate which Operation status are considered successful.", + "required": ["status", "successful"], + "additionalProperties": false, + "properties": { + "status": { + "type": "string", + "description": "The status is the network-specific status of the operation." + }, + "successful": { + "type": "boolean", + "description": "An Operation is considered successful if the Operation.Amount should affect the Operation.Account. Some blockchains (like Bitcoin) only include successful operations in blocks but other blockchains (like Ethereum) include unsuccessful operations that incur a fee. To reconcile the computed balance from the stream of Operations, it is critical to understand which Operation.Status indicate an Operation is successful and should affect an Account." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-operation.schema.json b/src/rosetta/json-schemas/rosetta-operation.schema.json new file mode 100644 index 000000000..da6c64928 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-operation.schema.json @@ -0,0 +1,40 @@ +{ + "type": "object", + "title": "RosettaOperation", + "description": "Operations contain all balance-changing information within a transaction. They are always one-sided (only affect 1 AccountIdentifier) and can succeed or fail independently from a Transaction.", + "required": ["operation_identifier", "type"], + "additionalProperties": false, + "properties": { + "operation_identifier": { + "$ref": "./rosetta-operation-identifier.schema.json" + }, + "related_operations": { + "type": "array", + "description": "Restrict referenced related_operations to identifier indexes < the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree.", + "items": { + "$ref": "./rosetta-related-operation.schema.json" + } + }, + "type": { + "type": "string", + "description": "The network-specific type of the operation. Ensure that any type that can be returned here is also specified in the NetworkStatus. This can be very useful to downstream consumers that parse all block data." + }, + "status": { + "type": "string", + "description": "The network-specific status of the operation. Status is not defined on the transaction object because blockchains with smart contracts may have transactions that partially apply. Blockchains with atomic transactions (all operations succeed or all operations fail) will have the same status for each operation." + }, + "account": { + "$ref": "./rosetta-account.schema.json" + }, + "amount": { + "$ref": "./rosetta-amount.schema.json" + }, + "coin_change": { + "$ref": "./rosetta-coin-change.schema.json" + }, + "metadata": { + "type": "object", + "description": "Operations Meta Data" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-other-transaction-identifier.schema.json b/src/rosetta/json-schemas/rosetta-other-transaction-identifier.schema.json new file mode 100644 index 000000000..feaf65e15 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-other-transaction-identifier.schema.json @@ -0,0 +1,13 @@ +{ + "type": "object", + "title": "OtherTransactionIdentifier", + "description": "The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool.", + "required": ["hash"], + "additionalProperties": false, + "properties": { + "hash": { + "type": "string", + "description": "Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-parent-block-identifier.schema.json b/src/rosetta/json-schemas/rosetta-parent-block-identifier.schema.json new file mode 100644 index 000000000..eb68dbe95 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-parent-block-identifier.schema.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "title": "RosettaParentBlockIdentifier", + "additionalProperties": false, + "description": "The block_identifier uniquely identifies a block in a particular network.", + "required": ["index", "hash"], + "properties": { + "index": { + "type": "integer", + "description": "This is also known as the block height." + }, + "hash": { + "type": "string", + "description": "Block hash" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-partial-block-identifier.schema.json b/src/rosetta/json-schemas/rosetta-partial-block-identifier.schema.json new file mode 100644 index 000000000..db95c2bb1 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-partial-block-identifier.schema.json @@ -0,0 +1,16 @@ +{ + "type": "object", + "title": "RosettaPartialBlockIdentifier", + "description": "When fetching data by BlockIdentifier, it may be possible to only specify the index or hash. If neither property is specified, it is assumed that the client is making a request at the current block.", + "anyOf": [ + { + "$ref": "./rosetta-block-identifier-hash.schema.json" + }, + { + "$ref": "./rosetta-block-identifier-height.schema.json" + }, + { + "type": "object" + } + ] +} diff --git a/src/rosetta/json-schemas/rosetta-public-key.schema.json b/src/rosetta/json-schemas/rosetta-public-key.schema.json new file mode 100644 index 000000000..d7c43d396 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-public-key.schema.json @@ -0,0 +1,18 @@ +{ + "type": "object", + "title": "RosettaPublicKey", + "description": "PublicKey contains a public key byte array for a particular CurveType encoded in hex. Note that there is no PrivateKey struct as this is NEVER the concern of an implementation.", + "required": ["hex_bytes", "curve_type"], + "additionalProperties": false, + "properties": { + "hex_bytes": { + "type": "string", + "description": "Hex-encoded public key bytes in the format specified by the CurveType." + }, + "curve_type": { + "type": "string", + "description": "CurveType is the type of cryptographic curve associated with a PublicKey.", + "enum": ["secp256k1", "edwards25519"] + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-related-operation.schema.json b/src/rosetta/json-schemas/rosetta-related-operation.schema.json new file mode 100644 index 000000000..9cc1ec217 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-related-operation.schema.json @@ -0,0 +1,17 @@ +{ + "title": "RosettaRelatedOperation", + "type": "object", + "description": "Restrict referenced related_operations to identifier indexes < the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree.", + "required": ["index"], + "additionalProperties": false, + "properties": { + "index": { + "type": "integer", + "description": "Describes the index of related operation." + }, + "network_index": { + "type": "integer", + "description": "Some blockchains specify an operation index that is essential for client use. network_index should not be populated if there is no notion of an operation index in a blockchain (typically most account-based blockchains)." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-signature-type.schema.json b/src/rosetta/json-schemas/rosetta-signature-type.schema.json new file mode 100644 index 000000000..acb76ff09 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-signature-type.schema.json @@ -0,0 +1,6 @@ +{ + "title": "SignatureType", + "type": "string", + "description": "SignatureType is the type of a cryptographic signature.", + "enum": ["ecdsa", "ecdsa_recovery", "ed25519", "schnorr_1", "schnorr_poseidon"] +} diff --git a/src/rosetta/json-schemas/rosetta-signature.schema.json b/src/rosetta/json-schemas/rosetta-signature.schema.json new file mode 100644 index 000000000..3a473e5e5 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-signature.schema.json @@ -0,0 +1,21 @@ +{ + "type": "object", + "title": "RosettaSignature", + "description": "Signature contains the payload that was signed, the public keys of the keypairs used to produce the signature, the signature (encoded in hex), and the SignatureType. PublicKey is often times not known during construction of the signing payloads but may be needed to combine signatures properly.", + "required": ["signing_payload", "public_key", "signature_type", "hex_bytes"], + "additionalProperties": false, + "properties": { + "signing_payload": { + "$ref": "./rosetta-signing-payload.schema.json" + }, + "public_key": { + "$ref": "./rosetta-public-key.schema.json" + }, + "signature_type": { + "$ref": "./rosetta-signature-type.schema.json" + }, + "hex_bytes": { + "type": "string" + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-signing-payload.schema.json b/src/rosetta/json-schemas/rosetta-signing-payload.schema.json new file mode 100644 index 000000000..8276662e5 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-signing-payload.schema.json @@ -0,0 +1,24 @@ +{ + "type": "object", + "title": "SigningPayload", + "description": "SigningPayload is signed by the client with the keypair associated with an address using the specified SignatureType. SignatureType can be optionally populated if there is a restriction on the signature scheme that can be used to sign the payload.", + "required": ["hex_bytes"], + "additionalProperties": false, + "properties": { + "address": { + "type": "string", + "description": "[DEPRECATED by account_identifier in v1.4.4] The network-specific address of the account that should sign the payload." + }, + "account_identifier": { + "$ref": "./rosetta-account.schema.json" + }, + "hex_bytes": { + "type": "string" + }, + "signature_type": { + "type": "string", + "description": "SignatureType is the type of a cryptographic signature.", + "enum": ["ecdsa", "ecdsa_recovery", "ed25519", "schnorr_1", "schnorr_poseidon"] + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-sub-account.schema.json b/src/rosetta/json-schemas/rosetta-sub-account.schema.json new file mode 100644 index 000000000..9e177030e --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-sub-account.schema.json @@ -0,0 +1,17 @@ +{ + "type": "object", + "title": "RosettaSubAccount", + "description": "An account may have state specific to a contract address (ERC-20 token) and/or a stake (delegated balance). The sub_account_identifier should specify which state (if applicable) an account instantiation refers to.", + "required": ["address"], + "additionalProperties": false, + "properties": { + "address": { + "type": "string", + "description": "The address may be a cryptographic public key (or some encoding of it) or a provided username." + }, + "metadata": { + "type": "object", + "description": "If the SubAccount address is not sufficient to uniquely specify a SubAccount, any other identifying information can be stored here. It is important to note that two SubAccounts with identical addresses but differing metadata will not be considered equal by clients." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-sync-status.schema.json b/src/rosetta/json-schemas/rosetta-sync-status.schema.json new file mode 100644 index 000000000..1bae86e84 --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-sync-status.schema.json @@ -0,0 +1,25 @@ +{ + "type": "object", + "title": "RosettaSyncStatus", + "description": "SyncStatus is used to provide additional context about an implementation's sync status. It is often used to indicate that an implementation is healthy when it cannot be queried until some sync phase occurs. If an implementation is immediately queryable, this model is often not populated.", + "required": ["current_index"], + "additionalProperties": false, + "properties": { + "current_index": { + "type": "integer", + "description": "CurrentIndex is the index of the last synced block in the current stage." + }, + "target_index": { + "type": "integer", + "description": "TargetIndex is the index of the block that the implementation is attempting to sync to in the current stage." + }, + "stage": { + "type": "string", + "description": "Stage is the phase of the sync process." + }, + "synced": { + "type": "boolean", + "description": "Synced indicates if an implementation has synced up to the most recent block." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-transaction-identifier.schema.json b/src/rosetta/json-schemas/rosetta-transaction-identifier.schema.json new file mode 100644 index 000000000..d784ad20f --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-transaction-identifier.schema.json @@ -0,0 +1,13 @@ +{ + "type": "object", + "title": "TransactionIdentifier", + "description": "The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool.", + "required": ["hash"], + "additionalProperties": false, + "properties": { + "hash": { + "type": "string", + "description": "Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier." + } + } +} diff --git a/src/rosetta/json-schemas/rosetta-transaction.schema.json b/src/rosetta/json-schemas/rosetta-transaction.schema.json new file mode 100644 index 000000000..ab3e6d24f --- /dev/null +++ b/src/rosetta/json-schemas/rosetta-transaction.schema.json @@ -0,0 +1,37 @@ +{ + "type": "object", + "title": "RosettaTransaction", + "description": "Transactions contain an array of Operations that are attributable to the same TransactionIdentifier.", + "required": ["transaction_identifier", "operations"], + "additionalProperties": false, + "properties": { + "transaction_identifier": { + "$ref": "./rosetta-transaction-identifier.schema.json" + }, + "operations": { + "type": "array", + "description": "List of operations", + "items": { + "$ref": "./rosetta-operation.schema.json" + } + }, + "metadata": { + "type": "object", + "description": "Transactions that are related to other transactions (like a cross-shard transaction) should include the tranaction_identifier of these transactions in the metadata.", + "properties": { + "memo": { + "type": "string", + "description": "STX token transfer memo." + }, + "size": { + "type": "integer", + "description": "The Size" + }, + "lockTime": { + "type": "integer", + "description": "The locktime" + } + } + } + } +} diff --git a/src/tests-rosetta-construction/construction.ts b/src/tests-rosetta-construction/construction.ts index cc7fe4f75..92aa7c82b 100644 --- a/src/tests-rosetta-construction/construction.ts +++ b/src/tests-rosetta-construction/construction.ts @@ -381,7 +381,7 @@ describe('Rosetta Construction', () => { message: 'Network identifier object is null.', retriable: false, details: { - message: "should have required property 'network_identifier'", + message: "must have required property 'network_identifier'", }, }; @@ -2544,7 +2544,7 @@ describe('Rosetta Construction', () => { code: 613, message: 'Network identifier object is null.', retriable: false, - details: { message: "should have required property 'network_identifier'" }, + details: { message: "must have required property 'network_identifier'" }, }); }); diff --git a/src/tests-rosetta/api.ts b/src/tests-rosetta/api.ts index 93e108830..0522f6fee 100644 --- a/src/tests-rosetta/api.ts +++ b/src/tests-rosetta/api.ts @@ -98,7 +98,7 @@ describe('Rosetta API', () => { code: 613, message: 'Network identifier object is null.', retriable: false, - details: { message: "should have required property 'network_identifier'" }, + details: { message: "must have required property 'network_identifier'" }, }); }); @@ -1332,7 +1332,7 @@ describe('Rosetta API', () => { code: 609, message: 'Invalid params.', retriable: false, - details: { message: "should have required property 'account_identifier'" } + details: { message: "must have required property 'account_identifier'" } } expect(JSON.parse(result.text)).toEqual(expectResponse); }); @@ -1482,7 +1482,7 @@ describe('Rosetta API', () => { code: 615, message: 'Block identifier is null.', retriable: false, - details: { message: "should have required property 'block_identifier'" } + details: { message: "must have required property 'block_identifier'" } } expect(JSON.parse(result.text)).toEqual(expectResponse); }); From 994640f8accb26606a5c9b1f8a7ecbaf7356c368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20C=C3=A1rdenas?= Date: Mon, 5 Aug 2024 10:52:01 -0600 Subject: [PATCH 41/56] fix: batch insert length assertion (#2042) * fix: batch insert length assertion * build: upgrade docker-compose * build: use docker compose --- package-lock.json | 22 ++++++++++++++----- package.json | 2 +- src/datastore/pg-write-store.ts | 4 ++-- .../validate-construction.ts | 2 +- .../validate-rosetta.ts | 2 +- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index ce806b5bf..4fd040d9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,7 +99,7 @@ "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.51.0", "concurrently": "7.3.0", - "docker-compose": "0.23.14", + "docker-compose": "0.24.8", "eslint": "8.29.0", "eslint-plugin-prettier": "4.2.1", "eslint-plugin-tsdoc": "0.2.17", @@ -6036,17 +6036,29 @@ } }, "node_modules/docker-compose": { - "version": "0.23.14", - "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.14.tgz", - "integrity": "sha512-n4y10yvZEGtwW4EvpDpiWal2elr6D14Bt8oP3nvlLAxryblEVub689lYhpu8lr54OlTiW9X64BH9SLd9AqljNw==", + "version": "0.24.8", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.8.tgz", + "integrity": "sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==", "dev": true, "dependencies": { - "yaml": "^1.10.2" + "yaml": "^2.2.2" }, "engines": { "node": ">= 6.0.0" } }, + "node_modules/docker-compose/node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", diff --git a/package.json b/package.json index a383758a3..48ffccb9f 100644 --- a/package.json +++ b/package.json @@ -175,7 +175,7 @@ "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.51.0", "concurrently": "7.3.0", - "docker-compose": "0.23.14", + "docker-compose": "0.24.8", "eslint": "8.29.0", "eslint-plugin-prettier": "4.2.1", "eslint-plugin-tsdoc": "0.2.17", diff --git a/src/datastore/pg-write-store.ts b/src/datastore/pg-write-store.ts index bbd15368e..32badbeb7 100644 --- a/src/datastore/pg-write-store.ts +++ b/src/datastore/pg-write-store.ts @@ -1074,7 +1074,7 @@ export class PgWriteStore extends PgStore { DO UPDATE SET balance = ft_balances.balance + EXCLUDED.balance `; - assert(res.count === values.length, `Expecting ${values.length} inserts, got ${res.count}`); + assert(res.count === batch.length, `Expecting ${batch.length} inserts, got ${res.count}`); } } @@ -1119,7 +1119,7 @@ export class PgWriteStore extends PgStore { DO UPDATE SET balance = ft_balances.balance + EXCLUDED.balance `; - assert(res.count === values.length, `Expecting ${values.length} inserts, got ${res.count}`); + assert(res.count === batch.length, `Expecting ${batch.length} inserts, got ${res.count}`); } } diff --git a/src/tests-rosetta-cli-construction/validate-construction.ts b/src/tests-rosetta-cli-construction/validate-construction.ts index 0bcea2fe9..34312da44 100644 --- a/src/tests-rosetta-cli-construction/validate-construction.ts +++ b/src/tests-rosetta-cli-construction/validate-construction.ts @@ -11,7 +11,7 @@ import { import { StacksTestnet } from '@stacks/network'; import * as fs from 'fs'; import { StacksCoreRpcClient, getCoreNodeEndpoint } from '../core-rpc/client'; -import * as compose from 'docker-compose'; +import { v2 as compose } from 'docker-compose'; import * as path from 'path'; import { PgWriteStore } from '../datastore/pg-write-store'; import { NonceJar, migrate, standByForTxSuccess } from '../test-utils/test-helpers'; diff --git a/src/tests-rosetta-cli-data/validate-rosetta.ts b/src/tests-rosetta-cli-data/validate-rosetta.ts index 1ae844e2e..fb3e77e19 100644 --- a/src/tests-rosetta-cli-data/validate-rosetta.ts +++ b/src/tests-rosetta-cli-data/validate-rosetta.ts @@ -17,7 +17,7 @@ import { StacksTestnet } from '@stacks/network'; import * as fs from 'fs'; import { StacksCoreRpcClient, getCoreNodeEndpoint } from '../core-rpc/client'; import { unwrapOptional } from '../helpers'; -import * as compose from 'docker-compose'; +import { v2 as compose } from 'docker-compose'; import * as path from 'path'; import { PgWriteStore } from '../datastore/pg-write-store'; import { EventStreamServer, startEventServer } from '../event-stream/event-server'; From e24ad9b8bf985d745eb87001a08a0ca21ed9213e Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 8 Aug 2024 16:58:58 +0200 Subject: [PATCH 42/56] test: misc bns test fixes --- src/api/routes/bns/names.ts | 14 ++++++++++---- src/tests-bns/api.ts | 3 +-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/api/routes/bns/names.ts b/src/api/routes/bns/names.ts index 885a06dda..449c4b1c7 100644 --- a/src/api/routes/bns/names.ts +++ b/src/api/routes/bns/names.ts @@ -244,7 +244,7 @@ export const BnsNameRoutes: FastifyPluginAsync< last_txid: Type.String(), resolver: Type.Optional(Type.String()), status: Type.String(), - zonefile: Type.String(), + zonefile: Type.Optional(Type.String()), zonefile_hash: Type.String(), }, { @@ -290,7 +290,7 @@ export const BnsNameRoutes: FastifyPluginAsync< if (resolverResult.result === '') { throw { error: `missing resolver from a malformed zonefile` }; } - throw new NameRedirectError(`${resolverResult.result}/v1/names${req.url}`); + throw new NameRedirectError(`${resolverResult.result}${req.url}`); } throw { error: `cannot find subdomain ${name}` }; } @@ -305,7 +305,10 @@ export const BnsNameRoutes: FastifyPluginAsync< zonefile: result.zonefile, zonefile_hash: result.zonefile_hash, }; - await reply.send(nameInfoResponse); + const response = Object.fromEntries( + Object.entries(nameInfoResponse).filter(([_, v]) => v != null) + ) as typeof nameInfoResponse; + await reply.send(response); } else { const nameQuery = await fastify.db.getName({ name, @@ -326,7 +329,10 @@ export const BnsNameRoutes: FastifyPluginAsync< zonefile: result.zonefile, zonefile_hash: result.zonefile_hash, }; - await reply.send(nameInfoResponse); + const response = Object.fromEntries( + Object.entries(nameInfoResponse).filter(([_, v]) => v != null) + ) as typeof nameInfoResponse; + await reply.send(response); } }) .catch(async error => { diff --git a/src/tests-bns/api.ts b/src/tests-bns/api.ts index 5794cac41..db29058e6 100644 --- a/src/tests-bns/api.ts +++ b/src/tests-bns/api.ts @@ -766,8 +766,7 @@ describe('BNS API tests', () => { test('Fail names by address - Blockchain not support', async () => { const query1 = await supertest(api.server).get(`/v1/addresses/invalid/test`); - expect(query1.status).toBe(404); - expect(query1.body.error).toBe('Unsupported blockchain'); + expect(query1.status).not.toBe(200); expect(query1.type).toBe('application/json'); }); From 2cb85e8e205885e489829dfa6ae6be6b51a3d2bc Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 8 Aug 2024 17:48:13 +0200 Subject: [PATCH 43/56] test: misc pox fixes --- src/api/routes/pox.ts | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/api/routes/pox.ts b/src/api/routes/pox.ts index 7f123c892..12a518bd8 100644 --- a/src/api/routes/pox.ts +++ b/src/api/routes/pox.ts @@ -15,9 +15,11 @@ export const PoxEventRoutes: FastifyPluginAsync< Server, TypeBoxTypeProvider > = async fastify => { - fastify.get('/', { schema: { hide: true } }, async (req, reply) => { + fastify.get('/*', { schema: { hide: true } }, async (req, reply) => { // Redirect old pox routes, e.g. /poxX_events to /poxX/events - const redirectUrl = req.url.replace(/(pox[\d])_events/, '$1/events'); + const redirectUrl = req.url.replace(/\/(pox4)_events(\/|$)/, (_, p1, p2) => + p2 === '/' ? `/${p1}${p2}` : `/${p1}/events` + ); return reply.redirect(redirectUrl); }); await Promise.resolve(); @@ -50,9 +52,6 @@ export const PoxRoutes: FastifyPluginAsync< limit: LimitParam(ResourceType.Pox2Event), offset: OffsetParam(), }), - response: { - 200: Type.Any(), - }, }, }, async (req, reply) => { @@ -88,9 +87,6 @@ export const PoxRoutes: FastifyPluginAsync< pox: Type.Enum({ pox2: 'pox2', pox3: 'pox3', pox4: 'pox4' }), tx_id: Type.String(), }), - response: { - 200: Type.Any(), - }, }, }, async (req, reply) => { @@ -125,9 +121,6 @@ export const PoxRoutes: FastifyPluginAsync< pox: Type.Enum({ pox2: 'pox2', pox3: 'pox3', pox4: 'pox4' }), principal: Type.String(), }), - response: { - 200: Type.Any(), - }, }, }, async (req, reply) => { From e04d69a9b960d4bdc89960207e1710e46db83bcf Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 8 Aug 2024 17:58:48 +0200 Subject: [PATCH 44/56] ci: misc fixes --- .github/workflows/ci.yml | 100 - .prettierignore | 1 + .proxy-cache-control.json | 11 - .releaserc | 6 - client/package.json | 2 +- client/src/generated/schema.d.ts | 124 +- docs/index.d.ts | 2 - docs/index.js | 1 - docs/openapi.json | 134300 +++++++++++++++++++ docs/openapi.yaml | 92000 ++++++++++++- docs/package.json | 4 +- src/event-replay/parquet-based/helpers.ts | 3 +- src/event-stream/event-server.ts | 2 +- src/openapi-generator.ts | 5 +- 14 files changed, 223275 insertions(+), 3286 deletions(-) delete mode 100644 .proxy-cache-control.json delete mode 100644 docs/index.d.ts delete mode 100644 docs/index.js create mode 100644 docs/openapi.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b2fdf7da..70fbb78dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,44 +52,6 @@ jobs: - name: Lint Unused Exports run: npm run lint:unused-exports - lint-docs: - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./docs - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - - - name: Cache node modules - uses: actions/cache@v3 - env: - cache-name: cache-node-modules - with: - path: | - ~/.npm - **/node_modules - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - ${{ runner.os }}-build- - ${{ runner.os }}- - - - name: Install deps - run: npm ci --audit=false - - - name: Build schema & docs - run: npm run build - - - name: Validate generated types - run: tsc index.d.ts - test: runs-on: ubuntu-latest steps: @@ -400,68 +362,6 @@ jobs: flag-name: run-${{ github.job }} parallel: true - test-subnets: - if: false - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - - - name: Cache node modules - uses: actions/cache@v3 - env: - cache-name: cache-node-modules - with: - path: | - ~/.npm - **/node_modules - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - ${{ runner.os }}-build- - ${{ runner.os }}- - - - name: Install deps - run: npm ci --audit=false - - - name: Setup env vars - run: echo "STACKS_CORE_EVENT_HOST=http://0.0.0.0" >> $GITHUB_ENV - - - name: Setup integration environment - run: | - sudo ufw disable - npm run devenv:deploy:subnets -- -d - npm run devenv:logs:subnets -- --no-color &> docker-compose-logs.txt & - - - name: Run tests - run: npm run test:subnets - - - name: Print integration environment logs - run: cat docker-compose-logs.txt - if: failure() - - - name: Teardown integration environment - run: npm run devenv:stop:subnets - if: always() - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 - with: - token: ${{ secrets.CODECOV_TOKEN }} - if: always() - - - name: Upload coverage to Coveralls - uses: coverallsapp/github-action@master - if: always() - with: - github-token: ${{ secrets.github_token }} - flag-name: run-${{ github.job }} - parallel: true - test-bns-e2e: runs-on: ubuntu-latest steps: diff --git a/.prettierignore b/.prettierignore index 503709495..0c15ec214 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,3 +4,4 @@ src/tests-rosetta/ src/tests-rosetta-cli/ src/tests-bns/ src/tests/synthetic-tx-payloads/ +src/rosetta/json-schemas/ diff --git a/.proxy-cache-control.json b/.proxy-cache-control.json deleted file mode 100644 index 39a418e48..000000000 --- a/.proxy-cache-control.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "paths": { - // Examples of common paths -- default is to not set a cache-control value (null). - // They can be set to cache with a lifetime e.g. "public, max-age=150" - "^/v2/info(.*)": null, - "^/v2/pox(.*)": null, - "^/v2/contracts/call-read(.*)": null, - "^/v2/map_entry(.*)": null, - "^/v2(.*)": null - } -} diff --git a/.releaserc b/.releaserc index e9d185e7d..276c09152 100644 --- a/.releaserc +++ b/.releaserc @@ -32,12 +32,6 @@ "prepareCmd": "npm ci" } ], - [ - "@semantic-release/npm", - { - "pkgRoot": "./docs" - } - ], [ "@semantic-release/npm", { diff --git a/client/package.json b/client/package.json index ad03061a6..71500a299 100644 --- a/client/package.json +++ b/client/package.json @@ -26,7 +26,7 @@ "test": "ts-node test/test.ts", "open": "http-server -o 9222 -o index.html", "prep-openapi": "npm run build --prefix ../docs", - "generate-openapi": "npm run prep-openapi && openapi-typescript --default-non-nullable=false ../docs/.tmp/openapi.yaml -o ./src/generated/schema.d.ts", + "generate-openapi": "npm run prep-openapi && openapi-typescript --default-non-nullable=false ../docs/openapi.yaml -o ./src/generated/schema.d.ts", "generate:docs": "npm run generate-openapi && typedoc src/**/*.ts" }, "files": [ diff --git a/client/src/generated/schema.d.ts b/client/src/generated/schema.d.ts index dc2461b7b..9ad324d3f 100644 --- a/client/src/generated/schema.d.ts +++ b/client/src/generated/schema.d.ts @@ -1050,9 +1050,7 @@ export interface paths { headers: { [name: string]: unknown; }; - content: { - "application/json": Record; - }; + content?: never; }; }; }; @@ -1089,9 +1087,7 @@ export interface paths { headers: { [name: string]: unknown; }; - content: { - "application/json": Record; - }; + content?: never; }; }; }; @@ -1128,9 +1124,7 @@ export interface paths { headers: { [name: string]: unknown; }; - content: { - "application/json": Record; - }; + content?: never; }; }; }; @@ -1818,7 +1812,7 @@ export interface operations { offset?: number; /** @description Results per page */ limit?: number; - type?: ("coinbase" | "token_transfer" | "smart_contract" | "contract_call" | "poison_microblock" | "tenure_change")[] | string; + type?: (("coinbase" | "token_transfer" | "smart_contract" | "contract_call" | "poison_microblock" | "tenure_change") | string)[]; /** * @description Include data from unanchored (i.e. unconfirmed) microblocks * @example true @@ -3183,7 +3177,7 @@ export interface operations { get_tx_list_details: { parameters: { query: { - tx_id: string[] | string; + tx_id: (string)[]; /** @description Results per page */ event_limit?: number; /** @description Result offset */ @@ -6502,7 +6496,7 @@ export interface operations { */ tx_id?: string; address?: string; - type?: ("smart_contract_log" | "stx_lock" | "stx_asset" | "fungible_token_asset" | "non_fungible_token_asset")[] | string; + type?: (("smart_contract_log" | "stx_lock" | "stx_asset" | "fungible_token_asset" | "non_fungible_token_asset") | string)[]; /** @description Result offset */ offset?: number; /** @description Results per page */ @@ -8538,17 +8532,6 @@ export interface operations { }); }; }; - /** @description Default Response */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - error: string; - }; - }; - }; }; }; get_raw_transaction_by_id: { @@ -8582,17 +8565,6 @@ export interface operations { }; }; }; - /** @description Default Response */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - error: string; - }; - }; - }; }; }; get_transactions_by_block_hash: { @@ -9926,17 +9898,6 @@ export interface operations { }; }; }; - /** @description Default Response */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - error: string; - }; - }; - }; }; }; get_transactions_by_block_height: { @@ -11274,17 +11235,6 @@ export interface operations { }; }; }; - /** @description Default Response */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - error: string; - }; - }; - }; }; }; get_stx_supply: { @@ -28801,7 +28751,54 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": Record; + "application/json": { + /** @example 20 */ + limit: number; + /** @example 0 */ + offset: number; + /** @example 1 */ + total: number; + results: { + /** @description Set to `true` if block corresponds to the canonical chain tip */ + canonical: boolean; + /** @description Height of the block */ + height: number; + /** @description Hash representing the block */ + hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + block_time_iso: string; + /** @description The only hash that can uniquely identify an anchored block or an unconfirmed state trie */ + index_block_hash: string; + /** @description Hash of the parent block */ + parent_block_hash: string; + /** @description Index block hash of the parent block */ + parent_index_block_hash: string; + /** @description Unix timestamp (in seconds) indicating when this block was mined. */ + burn_block_time: number; + /** @description An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined. */ + burn_block_time_iso: string; + /** @description Hash of the anchor chain block */ + burn_block_hash: string; + /** @description Height of the anchor chain block */ + burn_block_height: number; + /** @description Anchor chain transaction ID */ + miner_txid: string; + /** @description Number of transactions included in the block */ + tx_count: number; + /** @description Execution cost read count. */ + execution_cost_read_count: number; + /** @description Execution cost read length. */ + execution_cost_read_length: number; + /** @description Execution cost runtime. */ + execution_cost_runtime: number; + /** @description Execution cost write count. */ + execution_cost_write_count: number; + /** @description Execution cost write length. */ + execution_cost_write_length: number; + }[]; + }; }; }; }; @@ -30743,7 +30740,7 @@ export interface operations { last_txid: string; resolver?: string; status: string; - zonefile: string; + zonefile?: string; zonefile_hash: string; }; }; @@ -30856,17 +30853,6 @@ export interface operations { }; }; }; - /** @description Error */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": { - error: string; - }; - }; - }; }; }; get_namespace_price: { diff --git a/docs/index.d.ts b/docs/index.d.ts deleted file mode 100644 index e30278bad..000000000 --- a/docs/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './generated'; -export * from './socket-io'; diff --git a/docs/index.js b/docs/index.js deleted file mode 100644 index 35215d3c5..000000000 --- a/docs/index.js +++ /dev/null @@ -1 +0,0 @@ -// empty file to satisfy module bundlers diff --git a/docs/openapi.json b/docs/openapi.json new file mode 100644 index 000000000..b1f95ec32 --- /dev/null +++ b/docs/openapi.json @@ -0,0 +1,134300 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Stacks Blockchain API", + "description": "Welcome to the API reference overview for the [Stacks Blockchain API](https://docs.hiro.so/stacks-blockchain-api).\n\n [Download Postman collection](https://hirosystems.github.io/stacks-blockchain-api/collection.json)", + "version": "v7.11.0-beta.7" + }, + "components": { + "schemas": {} + }, + "paths": { + "/extended": { + "get": { + "operationId": "get_status", + "summary": "API status", + "tags": [ + "Info" + ], + "description": "Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information.", + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "title": "Api Status Response", + "type": "object", + "properties": { + "server_version": { + "description": "the server version that is currently running", + "type": "string" + }, + "status": { + "description": "the current server status", + "type": "string" + }, + "pox_v1_unlock_height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "pox_v2_unlock_height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "pox_v3_unlock_height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "chain_tip": { + "anyOf": [ + { + "type": "object", + "properties": { + "block_height": { + "description": "the current block height", + "type": "integer" + }, + "block_hash": { + "description": "the current block hash", + "type": "string" + }, + "index_block_hash": { + "description": "the current index block hash", + "type": "string" + }, + "microblock_hash": { + "description": "the current microblock hash", + "type": "string" + }, + "microblock_sequence": { + "description": "the current microblock sequence number", + "type": "integer" + }, + "burn_block_height": { + "description": "the current burn chain block height", + "type": "integer" + } + }, + "required": [ + "block_height", + "block_hash", + "index_block_hash", + "burn_block_height" + ] + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "server_version", + "status" + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/": { + "get": { + "operationId": "get_transaction_list", + "summary": "Get recent transactions", + "tags": [ + "Transactions" + ], + "description": "Retrieves all recently mined transactions", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "type": "array", + "items": { + "anyOf": [ + { + "anyOf": [ + { + "type": "string", + "enum": [ + "coinbase" + ] + }, + { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + { + "type": "string", + "enum": [ + "contract_call" + ] + }, + { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + { + "type": "string", + "enum": [ + "tenure_change" + ] + } + ] + }, + { + "pattern": "^(coinbase|token_transfer|smart_contract|contract_call|poison_microblock|tenure_change)(,(coinbase|token_transfer|smart_contract|contract_call|poison_microblock|tenure_change))*$", + "description": "Comma separated list of transaction types", + "examples": [ + "coinbase,token_transfer,smart_contract" + ], + "type": "string" + } + ] + } + }, + "in": "query", + "name": "type", + "required": false + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "asc" + ] + }, + { + "type": "string", + "enum": [ + "desc" + ] + } + ] + }, + "in": "query", + "name": "order", + "required": false + }, + { + "schema": { + "default": "block_height", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_height" + ] + }, + { + "type": "string", + "enum": [ + "burn_block_time" + ] + }, + { + "type": "string", + "enum": [ + "fee" + ] + } + ] + }, + "in": "query", + "name": "sort_by", + "required": false, + "description": "Option to sort results by block height, timestamp, or fee" + }, + { + "schema": { + "type": "string" + }, + "in": "query", + "name": "from_address", + "required": false, + "description": "Option to filter results by sender address" + }, + { + "schema": { + "type": "string" + }, + "in": "query", + "name": "to_address", + "required": false, + "description": "Option to filter results by recipient address" + }, + { + "schema": { + "type": "integer" + }, + "example": 1704067200, + "in": "query", + "name": "start_time", + "required": false, + "description": "Filter by transactions after this timestamp (unix timestamp in seconds)" + }, + { + "schema": { + "type": "integer" + }, + "example": 1706745599, + "in": "query", + "name": "end_time", + "required": false, + "description": "Filter by transactions before this timestamp (unix timestamp in seconds)" + }, + { + "schema": { + "type": "string" + }, + "example": "SP000000000000000000002Q6VF78.pox-4", + "in": "query", + "name": "contract_id", + "required": false, + "description": "Option to filter results by contract ID" + }, + { + "schema": { + "type": "string" + }, + "example": "delegate-stx", + "in": "query", + "name": "function_name", + "required": false, + "description": "Filter by contract call transactions involving this function name" + }, + { + "schema": { + "minimum": 0, + "maximum": 9007199254740991, + "type": "integer" + }, + "example": 123, + "in": "query", + "name": "nonce", + "required": false, + "description": "Filter by transactions with this nonce" + } + ], + "responses": { + "200": { + "description": "List of transactions", + "content": { + "application/json": { + "schema": { + "description": "List of transactions", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/multiple": { + "get": { + "operationId": "get_tx_list_details", + "summary": "Get list of details for transactions", + "tags": [ + "Transactions" + ], + "description": "Retrieves a list of transactions for a given list of transaction IDs", + "parameters": [ + { + "schema": { + "type": "array", + "items": { + "anyOf": [ + { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Transaction ID", + "description": "Transaction ID", + "examples": [ + "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6" + ], + "type": "string" + }, + { + "pattern": "^(0x)?[a-fA-F0-9]{64}(,(0x)?[a-fA-F0-9]{64})*$", + "title": "Comma separated list of transaction IDs", + "description": "Comma separate list of transaction IDs", + "examples": [ + "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6,0xbf06fc00be4333166b9a9be0557b9f560bee8700dfe7988bd3d3df1f1a077ed8" + ], + "type": "string" + } + ] + } + }, + "in": "query", + "name": "tx_id", + "required": true + }, + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "event_limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "event_offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "title": "TransactionFound", + "description": "This object returns transaction for found true", + "type": "object", + "properties": { + "found": { + "const": true, + "type": "boolean" + }, + "result": { + "anyOf": [ + { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "success", + "type": "string" + }, + { + "const": "abort_by_response", + "type": "string" + }, + { + "const": "abort_by_post_condition", + "type": "string" + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "smart_contract_log", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_lock", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "non_fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "const": "token_transfer", + "type": "string" + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "success", + "type": "string" + }, + { + "const": "abort_by_response", + "type": "string" + }, + { + "const": "abort_by_post_condition", + "type": "string" + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "smart_contract_log", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_lock", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "non_fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "const": "smart_contract", + "type": "string" + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "success", + "type": "string" + }, + { + "const": "abort_by_response", + "type": "string" + }, + { + "const": "abort_by_post_condition", + "type": "string" + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "smart_contract_log", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_lock", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "non_fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "const": "contract_call", + "type": "string" + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "success", + "type": "string" + }, + { + "const": "abort_by_response", + "type": "string" + }, + { + "const": "abort_by_post_condition", + "type": "string" + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "smart_contract_log", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_lock", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "non_fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "const": "poison_microblock", + "type": "string" + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "success", + "type": "string" + }, + { + "const": "abort_by_response", + "type": "string" + }, + { + "const": "abort_by_post_condition", + "type": "string" + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "smart_contract_log", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_lock", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "non_fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "const": "coinbase", + "type": "string" + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "success", + "type": "string" + }, + { + "const": "abort_by_response", + "type": "string" + }, + { + "const": "abort_by_post_condition", + "type": "string" + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "smart_contract_log", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_lock", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "stx_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "const": "non_fungible_token_asset", + "type": "string" + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "const": "transfer", + "type": "string" + }, + { + "const": "mint", + "type": "string" + }, + { + "const": "burn", + "type": "string" + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "const": "tenure_change", + "type": "string" + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "const": "block_found", + "type": "string" + }, + { + "const": "extended", + "type": "string" + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + }, + { + "anyOf": [ + { + "title": "TokenTransferMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "pending", + "type": "string" + }, + { + "const": "dropped_replace_by_fee", + "type": "string" + }, + { + "const": "dropped_replace_across_fork", + "type": "string" + }, + { + "const": "dropped_too_expensive", + "type": "string" + }, + { + "const": "dropped_stale_garbage_collect", + "type": "string" + }, + { + "const": "dropped_problematic", + "type": "string" + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "const": "token_transfer", + "type": "string" + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "pending", + "type": "string" + }, + { + "const": "dropped_replace_by_fee", + "type": "string" + }, + { + "const": "dropped_replace_across_fork", + "type": "string" + }, + { + "const": "dropped_too_expensive", + "type": "string" + }, + { + "const": "dropped_stale_garbage_collect", + "type": "string" + }, + { + "const": "dropped_problematic", + "type": "string" + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "const": "smart_contract", + "type": "string" + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "pending", + "type": "string" + }, + { + "const": "dropped_replace_by_fee", + "type": "string" + }, + { + "const": "dropped_replace_across_fork", + "type": "string" + }, + { + "const": "dropped_too_expensive", + "type": "string" + }, + { + "const": "dropped_stale_garbage_collect", + "type": "string" + }, + { + "const": "dropped_problematic", + "type": "string" + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "const": "contract_call", + "type": "string" + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "pending", + "type": "string" + }, + { + "const": "dropped_replace_by_fee", + "type": "string" + }, + { + "const": "dropped_replace_across_fork", + "type": "string" + }, + { + "const": "dropped_too_expensive", + "type": "string" + }, + { + "const": "dropped_stale_garbage_collect", + "type": "string" + }, + { + "const": "dropped_problematic", + "type": "string" + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "const": "poison_microblock", + "type": "string" + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "pending", + "type": "string" + }, + { + "const": "dropped_replace_by_fee", + "type": "string" + }, + { + "const": "dropped_replace_across_fork", + "type": "string" + }, + { + "const": "dropped_too_expensive", + "type": "string" + }, + { + "const": "dropped_stale_garbage_collect", + "type": "string" + }, + { + "const": "dropped_problematic", + "type": "string" + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "const": "coinbase", + "type": "string" + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "const": "allow", + "type": "string" + }, + { + "const": "deny", + "type": "string" + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "stx", + "type": "string" + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent_equal_to", + "type": "string" + }, + { + "const": "sent_greater_than", + "type": "string" + }, + { + "const": "sent_greater_than_or_equal_to", + "type": "string" + }, + { + "const": "sent_less_than", + "type": "string" + }, + { + "const": "sent_less_than_or_equal_to", + "type": "string" + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "const": "fungible", + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_origin", + "type": "string" + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_standard", + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "const": "principal_contract", + "type": "string" + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "const": "sent", + "type": "string" + }, + { + "const": "not_sent", + "type": "string" + } + ] + }, + "type": { + "const": "non_fungible", + "type": "string" + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "const": "on_chain_only", + "type": "string" + }, + { + "const": "off_chain_only", + "type": "string" + }, + { + "const": "any", + "type": "string" + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "const": "pending", + "type": "string" + }, + { + "const": "dropped_replace_by_fee", + "type": "string" + }, + { + "const": "dropped_replace_across_fork", + "type": "string" + }, + { + "const": "dropped_too_expensive", + "type": "string" + }, + { + "const": "dropped_stale_garbage_collect", + "type": "string" + }, + { + "const": "dropped_problematic", + "type": "string" + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "const": "tenure_change", + "type": "string" + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "const": "block_found", + "type": "string" + }, + { + "const": "extended", + "type": "string" + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + ] + } + }, + "required": [ + "found", + "result" + ] + }, + { + "title": "TransactionNotFound", + "description": "This object returns the id for not found transaction", + "type": "object", + "properties": { + "found": { + "const": false, + "type": "boolean" + }, + "result": { + "type": "object", + "properties": { + "tx_id": { + "type": "string" + } + }, + "required": [ + "tx_id" + ] + } + }, + "required": [ + "found", + "result" + ] + } + ] + } + } + } + } + } + } + } + }, + "/extended/v1/tx/mempool": { + "get": { + "operationId": "get_mempool_transaction_list", + "summary": "Get mempool transactions", + "tags": [ + "Transactions" + ], + "description": "Retrieves all transactions that have been recently broadcast to the mempool. These are pending transactions awaiting confirmation.\n\n If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates.", + "parameters": [ + { + "schema": { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}", + "title": "STX Address", + "type": "string" + }, + "example": "SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP", + "in": "query", + "name": "sender_address", + "required": false, + "description": "STX Address" + }, + { + "schema": { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}", + "title": "STX Address", + "type": "string" + }, + "example": "SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP", + "in": "query", + "name": "recipient_address", + "required": false, + "description": "STX Address" + }, + { + "schema": { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}", + "title": "STX Address", + "type": "string" + }, + "example": "SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP", + "in": "query", + "name": "address", + "required": false, + "description": "STX Address" + }, + { + "schema": { + "title": "Order By", + "anyOf": [ + { + "type": "string", + "enum": [ + "age" + ] + }, + { + "type": "string", + "enum": [ + "size" + ] + }, + { + "type": "string", + "enum": [ + "fee" + ] + } + ] + }, + "in": "query", + "name": "order_by", + "required": false, + "description": "Option to sort results by transaction age, size, or fee rate." + }, + { + "schema": { + "title": "Order", + "anyOf": [ + { + "type": "string", + "enum": [ + "asc" + ] + }, + { + "type": "string", + "enum": [ + "desc" + ] + } + ] + }, + "in": "query", + "name": "order", + "required": false, + "description": "Results order" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + } + ], + "responses": { + "200": { + "description": "List of mempool transactions", + "content": { + "application/json": { + "schema": { + "description": "List of mempool transactions", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/mempool/dropped": { + "get": { + "operationId": "get_dropped_mempool_transaction_list", + "summary": "Get dropped mempool transactions", + "tags": [ + "Transactions" + ], + "description": "Retrieves all recently-broadcast transactions that have been dropped from the mempool.\n\n Transactions are dropped from the mempool if:\n * they were stale and awaiting garbage collection or,\n * were expensive, or\n * were replaced with a new fee", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + } + ], + "responses": { + "200": { + "description": "List of dropped mempool transactions", + "content": { + "application/json": { + "schema": { + "description": "List of dropped mempool transactions", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/mempool/stats": { + "get": { + "operationId": "get_mempool_transaction_stats", + "summary": "Get statistics for mempool transactions", + "tags": [ + "Transactions" + ], + "description": "Queries for transactions counts, age (by block height), fees (simple average), and size.\n All results broken down by transaction type and percentiles (p25, p50, p75, p95).", + "responses": { + "200": { + "description": "GET request that returns stats on mempool transactions", + "content": { + "application/json": { + "schema": { + "title": "MempoolTransactionStatsResponse", + "description": "GET request that returns stats on mempool transactions", + "type": "object", + "properties": { + "tx_type_counts": { + "additionalProperties": { + "type": "integer" + }, + "description": "Number of tranasction in the mempool, broken down by transaction type.", + "type": "object" + }, + "tx_simple_fee_averages": { + "description": "The simple mean (average) transaction fee, broken down by transaction type. Note that this does not factor in actual execution costs. The average fee is not a reliable metric for calculating a fee for a new transaction.", + "type": "object", + "additionalProperties": { + "additionalProperties": true, + "type": "object", + "properties": { + "p25": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p50": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p75": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p95": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "p25", + "p50", + "p75", + "p95" + ] + } + }, + "tx_ages": { + "description": "The average time (in blocks) that transactions have lived in the mempool. The start block height is simply the current chain-tip of when the attached Stacks node receives the transaction. This timing can be different across Stacks nodes / API instances due to propagation timing differences in the p2p network.", + "type": "object", + "additionalProperties": { + "additionalProperties": true, + "type": "object", + "properties": { + "p25": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p50": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p75": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p95": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "p25", + "p50", + "p75", + "p95" + ] + } + }, + "tx_byte_sizes": { + "description": "The average byte size of transactions in the mempool, broken down by transaction type.", + "type": "object", + "additionalProperties": { + "additionalProperties": true, + "type": "object", + "properties": { + "p25": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p50": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p75": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "p95": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "p25", + "p50", + "p75", + "p95" + ] + } + } + }, + "required": [ + "tx_type_counts", + "tx_simple_fee_averages", + "tx_ages", + "tx_byte_sizes" + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/events": { + "get": { + "operationId": "get_filtered_events", + "summary": "Transaction Events", + "tags": [ + "Transactions" + ], + "description": "Retrieves the list of events filtered by principal (STX address or Smart Contract ID), transaction id or event types.\n The list of event types is ('smart_contract_log', 'stx_lock', 'stx_asset', 'fungible_token_asset', 'non_fungible_token_asset').", + "parameters": [ + { + "schema": { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Transaction ID", + "type": "string" + }, + "example": "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6", + "in": "query", + "name": "tx_id", + "required": false, + "description": "Transaction ID" + }, + { + "schema": { + "anyOf": [ + { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}", + "title": "STX Address", + "description": "STX Address", + "examples": [ + "SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP" + ], + "type": "string" + }, + { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$", + "title": "Smart Contract ID", + "description": "Smart Contract ID", + "examples": [ + "SP000000000000000000002Q6VF78.pox-3" + ], + "type": "string" + } + ] + }, + "in": "query", + "name": "address", + "required": false + }, + { + "schema": { + "type": "array", + "items": { + "anyOf": [ + { + "anyOf": [ + { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + } + ] + }, + { + "pattern": "^(smart_contract_log|stx_lock|stx_asset|fungible_token_asset|non_fungible_token_asset)(,(smart_contract_log|stx_lock|stx_asset|fungible_token_asset|non_fungible_token_asset))*$", + "description": "Comma separated list of transaction event types", + "examples": [ + "smart_contract_log,stx_lock,stx_asset" + ], + "type": "string" + } + ] + } + }, + "in": "query", + "name": "type", + "required": false + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "title": "List of events", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "events" + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/{tx_id}": { + "get": { + "operationId": "get_transaction_by_id", + "summary": "Get transaction", + "tags": [ + "Transactions" + ], + "description": "Retrieves transaction details for a given transaction ID", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "event_limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "event_offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Transaction ID", + "type": "string" + }, + "example": "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6", + "in": "path", + "name": "tx_id", + "required": true, + "description": "Transaction ID" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + }, + { + "anyOf": [ + { + "title": "TokenTransferMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/{tx_id}/raw": { + "get": { + "operationId": "get_raw_transaction_by_id", + "summary": "Get raw transaction", + "tags": [ + "Transactions" + ], + "description": "Retrieves a hex encoded serialized transaction for a given ID", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "event_limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "event_offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Transaction ID", + "type": "string" + }, + "example": "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6", + "in": "path", + "name": "tx_id", + "required": true, + "description": "Transaction ID" + } + ], + "responses": { + "200": { + "description": "GET raw transaction", + "content": { + "application/json": { + "schema": { + "title": "GetRawTransactionResult", + "description": "GET raw transaction", + "type": "object", + "properties": { + "raw_tx": { + "type": "string" + } + }, + "required": [ + "raw_tx" + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/block/{block_hash}": { + "get": { + "operationId": "get_transactions_by_block_hash", + "summary": "Transactions by block hash", + "tags": [ + "Transactions" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get transactions by block](/api/get-transactions-by-block).\n\n Retrieves a list of all transactions within a block for a given block hash.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "type": "string" + }, + "in": "path", + "name": "block_hash", + "required": true + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "List of transactions", + "content": { + "application/json": { + "schema": { + "description": "List of transactions", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/tx/block_height/{height}": { + "get": { + "operationId": "get_transactions_by_block_height", + "summary": "Transactions by block height", + "tags": [ + "Transactions" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get transactions by block](/api/get-transactions-by-block).\n\n Retrieves all transactions within a block at a given height", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "title": "Block height", + "type": "integer" + }, + "example": 777678, + "in": "path", + "name": "height", + "required": true, + "description": "Block height" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "List of transactions", + "content": { + "application/json": { + "schema": { + "description": "List of transactions", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/stx_supply/": { + "get": { + "operationId": "get_stx_supply", + "summary": "Get total and unlocked STX supply", + "tags": [ + "Info" + ], + "description": "Retrieves the total and unlocked STX supply. More information on Stacking can be found [here] (https://docs.stacks.co/understand-stacks/stacking).\n **Note:** This uses the estimated future total supply for the year 2050.", + "parameters": [ + { + "schema": { + "minimum": 0, + "title": "Block height", + "type": "integer" + }, + "example": 777678, + "in": "query", + "name": "height", + "required": false, + "description": "Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. Note that the `block height` is referred to the stacks blockchain." + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + } + ], + "responses": { + "200": { + "description": "GET request that returns network target block times", + "content": { + "application/json": { + "schema": { + "title": "GetStxSupplyResponse", + "description": "GET request that returns network target block times", + "type": "object", + "properties": { + "unlocked_percent": { + "description": "String quoted decimal number of the percentage of STX that have unlocked", + "type": "string" + }, + "total_stx": { + "description": "String quoted decimal number of the total possible number of STX", + "type": "string" + }, + "unlocked_stx": { + "description": "String quoted decimal number of the STX that have been mined or unlocked", + "type": "string" + }, + "block_height": { + "description": "The block height at which this information was queried", + "type": "integer" + } + }, + "required": [ + "unlocked_percent", + "total_stx", + "unlocked_stx", + "block_height" + ] + } + } + } + } + } + } + }, + "/extended/v1/stx_supply/total/plain": { + "get": { + "operationId": "get_stx_supply_total_supply_plain", + "summary": "Get total STX supply in plain text format", + "tags": [ + "Info" + ], + "description": "Retrieves the total supply for STX tokens as plain text.\n **Note:** this uses the estimated future total supply for the year 2050.", + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "text/plain": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/extended/v1/stx_supply/circulating/plain": { + "get": { + "operationId": "get_stx_supply_circulating_plain", + "summary": "Get circulating STX supply in plain text format", + "tags": [ + "Info" + ], + "description": "Retrieves the STX tokens currently in circulation that have been unlocked as plain text.", + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "text/plain": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/extended/v1/stx_supply/legacy_format": { + "get": { + "operationId": "get_total_stx_supply_legacy_format", + "summary": "Get total and unlocked STX supply (results formatted the same as the legacy 1.0 API)", + "tags": [ + "Info" + ], + "description": "Retrieves total supply of STX tokens including those currently in circulation that have been unlocked.\n **Note:** this uses the estimated future total supply for the year 2050.", + "parameters": [ + { + "schema": { + "minimum": 0, + "title": "Block height", + "type": "integer" + }, + "example": 777678, + "in": "query", + "name": "height", + "required": false, + "description": "Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. Note that the `block height` is referred to the stacks blockchain." + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + } + ], + "responses": { + "200": { + "description": "GET request that returns network target block times", + "content": { + "application/json": { + "schema": { + "title": "GetStxSupplyLegacyFormatResponse", + "description": "GET request that returns network target block times", + "type": "object", + "properties": { + "unlockedPercent": { + "description": "String quoted decimal number of the percentage of STX that have unlocked", + "type": "string" + }, + "totalStacks": { + "description": "String quoted decimal number of the total possible number of STX", + "type": "string" + }, + "totalStacksFormatted": { + "description": "Same as `totalStacks` but formatted with comma thousands separators", + "type": "string" + }, + "unlockedSupply": { + "description": "String quoted decimal number of the STX that have been mined or unlocked", + "type": "string" + }, + "unlockedSupplyFormatted": { + "description": "Same as `unlockedSupply` but formatted with comma thousands separators", + "type": "string" + }, + "blockHeight": { + "description": "The block height at which this information was queried", + "type": "string" + } + }, + "required": [ + "unlockedPercent", + "totalStacks", + "totalStacksFormatted", + "unlockedSupply", + "unlockedSupplyFormatted", + "blockHeight" + ] + } + } + } + } + } + } + }, + "/extended/v1/info/network_block_times": { + "get": { + "operationId": "get_network_block_times", + "summary": "Get the network target block time", + "tags": [ + "Info" + ], + "description": "Retrieves the target block times for mainnet and testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet.", + "responses": { + "200": { + "description": "GET request that returns network target block times", + "content": { + "application/json": { + "schema": { + "title": "NetworkBlockTimesResponse", + "description": "GET request that returns network target block times", + "type": "object", + "properties": { + "mainnet": { + "type": "object", + "properties": { + "target_block_time": { + "type": "integer" + } + }, + "required": [ + "target_block_time" + ] + }, + "testnet": { + "type": "object", + "properties": { + "target_block_time": { + "type": "integer" + } + }, + "required": [ + "target_block_time" + ] + } + }, + "required": [ + "mainnet", + "testnet" + ] + } + } + } + } + } + } + }, + "/extended/v1/info/network_block_time/{network}": { + "get": { + "operationId": "get_network_block_time_by_network", + "summary": "Get a given network's target block time", + "tags": [ + "Info" + ], + "description": "Retrieves the target block time for a given network. The network can be mainnet or testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet.", + "parameters": [ + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "testnet" + ] + }, + { + "type": "string", + "enum": [ + "mainnet" + ] + } + ] + }, + "in": "path", + "name": "network", + "required": true + } + ], + "responses": { + "200": { + "description": "GET request that target block time for a given network", + "content": { + "application/json": { + "schema": { + "title": "NetworkBlockTimeResponse", + "description": "GET request that target block time for a given network", + "type": "object", + "properties": { + "target_block_time": { + "type": "integer" + } + }, + "required": [ + "target_block_time" + ] + } + } + } + } + } + } + }, + "/extended/v1/tokens/nft/holdings": { + "get": { + "operationId": "get_nft_holdings", + "summary": "Non-Fungible Token holdings", + "tags": [ + "Non-Fungible Tokens" + ], + "description": "Retrieves the list of Non-Fungible Tokens owned by the given principal (STX address or Smart Contract ID).\n Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token.\n\n More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts).", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v3", + "in": "query", + "name": "principal", + "required": true, + "description": "token owner's STX address or Smart Contract ID" + }, + { + "schema": { + "type": "array", + "items": { + "description": "identifiers of the token asset classes to filter for", + "examples": [ + "SPQZF23W7SEYBFG5JQ496NMY0G7379SRYEDREMSV.Candy::candy" + ], + "type": "string" + } + }, + "in": "query", + "name": "asset_identifiers", + "required": false + }, + { + "schema": { + "minimum": 0, + "default": 50, + "maximum": 200, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "max number of tokens to fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "index of first tokens to fetch" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "in": "query", + "name": "tx_metadata", + "required": true, + "description": "whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times." + } + ], + "responses": { + "200": { + "description": "List of Non-Fungible Token holdings", + "content": { + "application/json": { + "schema": { + "description": "List of Non-Fungible Token holdings", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "NonFungibleTokenHoldingsList", + "description": "List of Non-Fungible Token holdings", + "anyOf": [ + { + "title": "NonFungibleTokenHoldingWithTxId", + "description": "Ownership of a Non-Fungible Token", + "type": "object", + "properties": { + "asset_identifier": { + "type": "string" + }, + "value": { + "description": "Non-Fungible Token value", + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the identifier of the Non-Fungible Token", + "type": "string" + }, + "repr": { + "description": "Readable string of the Non-Fungible Token identifier", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "block_height": { + "type": "integer" + }, + "tx_id": { + "type": "string" + } + }, + "required": [ + "asset_identifier", + "value", + "block_height", + "tx_id" + ] + }, + { + "title": "NonFungibleTokenHoldingWithTxMetadata", + "description": "Ownership of a Non-Fungible Token with transaction metadata", + "type": "object", + "properties": { + "asset_identifier": { + "type": "string" + }, + "value": { + "description": "Non-Fungible Token value", + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the identifier of the Non-Fungible Token", + "type": "string" + }, + "repr": { + "description": "Readable string of the Non-Fungible Token identifier", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "block_height": { + "type": "integer" + }, + "tx": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + }, + "required": [ + "asset_identifier", + "value", + "block_height", + "tx" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/tokens/nft/history": { + "get": { + "operationId": "get_nft_history", + "summary": "Non-Fungible Token history", + "tags": [ + "Non-Fungible Tokens" + ], + "description": "Retrieves all events relevant to a Non-Fungible Token. Useful to determine the ownership history of a particular asset.\n\n More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts).", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild", + "in": "query", + "name": "asset_identifier", + "required": true, + "description": "asset class identifier" + }, + { + "schema": { + "type": "string" + }, + "example": "0x0100000000000000000000000000000803", + "in": "query", + "name": "value", + "required": true, + "description": "hex representation of the token's unique value" + }, + { + "schema": { + "minimum": 0, + "default": 50, + "maximum": 200, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "max number of events to fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "index of first event to fetch" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "in": "query", + "name": "tx_metadata", + "required": true, + "description": "whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times." + } + ], + "responses": { + "200": { + "description": "List of Non-Fungible Token history events", + "content": { + "application/json": { + "schema": { + "description": "List of Non-Fungible Token history events", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "NonFungibleTokenHistoryEvent", + "description": "Describes an event from the history of a Non-Fungible Token", + "anyOf": [ + { + "title": "NonFungibleTokenHistoryEventWithTxId", + "description": "Non-Fungible Token history event with transaction id", + "type": "object", + "properties": { + "sender": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "recipient": { + "type": "string" + }, + "event_index": { + "type": "integer" + }, + "asset_event_type": { + "type": "string" + }, + "tx_id": { + "type": "string" + } + }, + "required": [ + "event_index", + "asset_event_type", + "tx_id" + ] + }, + { + "title": "NonFungibleTokenHistoryEventWithTxMetadata", + "description": "Non-Fungible Token history event with transaction metadata", + "type": "object", + "properties": { + "sender": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "recipient": { + "type": "string" + }, + "event_index": { + "type": "integer" + }, + "asset_event_type": { + "type": "string" + }, + "tx": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + }, + "required": [ + "event_index", + "asset_event_type", + "tx" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/tokens/nft/mints": { + "get": { + "operationId": "get_nft_mints", + "summary": "Non-Fungible Token mints", + "tags": [ + "Non-Fungible Tokens" + ], + "description": "Retrieves all mint events for a Non-Fungible Token asset class. Useful to determine which NFTs of a particular collection have been claimed.\n\n More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts).", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild", + "in": "query", + "name": "asset_identifier", + "required": true, + "description": "asset class identifier" + }, + { + "schema": { + "minimum": 0, + "default": 50, + "maximum": 200, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "max number of events to fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "index of first event to fetch" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "in": "query", + "name": "tx_metadata", + "required": true, + "description": "whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times." + } + ], + "responses": { + "200": { + "description": "List of Non-Fungible Token mint events for an asset identifier", + "content": { + "application/json": { + "schema": { + "title": "NonFungibleTokenMintList", + "description": "List of Non-Fungible Token mint events for an asset identifier", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "NonFungibleTokenMint", + "description": "Describes the minting of a Non-Fungible Token", + "anyOf": [ + { + "title": "NonFungibleTokenMintWithTxId", + "description": "Non-Fungible Token mint event with transaction id", + "type": "object", + "properties": { + "recipient": { + "type": "string" + }, + "event_index": { + "type": "integer" + }, + "value": { + "description": "Non-Fungible Token value", + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the identifier of the Non-Fungible Token", + "type": "string" + }, + "repr": { + "description": "Readable string of the Non-Fungible Token identifier", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "tx_id": { + "type": "string" + } + }, + "required": [ + "event_index", + "value", + "tx_id" + ] + }, + { + "type": "object", + "properties": { + "recipient": { + "type": "string" + }, + "event_index": { + "type": "integer" + }, + "value": { + "description": "Non-Fungible Token value", + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the identifier of the Non-Fungible Token", + "type": "string" + }, + "repr": { + "description": "Readable string of the Non-Fungible Token identifier", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "tx": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + }, + "required": [ + "event_index", + "value", + "tx" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/tokens/ft/{token}/holders": { + "get": { + "operationId": "get_ft_holders", + "summary": "Fungible token holders", + "tags": [ + "Fungible Tokens" + ], + "description": "Retrieves the list of Fungible Token holders for a given token ID. Specify `stx` for the `token` parameter to get the list of STX holders.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 100, + "maximum": 200, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "max number of holders to fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "index of first holder to fetch" + }, + { + "schema": { + "type": "string" + }, + "examples": { + "stx": { + "value": "stx" + }, + "SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc::aeUSDC": { + "value": "SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc::aeUSDC" + } + }, + "in": "path", + "name": "token", + "required": true, + "description": "fungible token identifier" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_supply": { + "description": "The total supply of the token (the sum of all balances)", + "type": "string", + "example": "5817609278457" + }, + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "FtHolderEntry", + "type": "object", + "properties": { + "address": { + "description": "Principal of the token holder", + "type": "string", + "example": "SP3G2QZHYDZPJ2FBN2V2MB74T5ZQ6FQK2P5QJ2K6" + }, + "balance": { + "description": "The balance of the token held by the address", + "type": "string", + "example": "174823763" + } + }, + "required": [ + "address", + "balance" + ] + } + } + }, + "required": [ + "total_supply", + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/contract/by_trait": { + "get": { + "operationId": "get_contracts_by_trait", + "summary": "Get contracts by trait", + "tags": [ + "Smart Contracts" + ], + "description": "Retrieves a list of contracts based on the following traits listed in JSON format - functions, variables, maps, fungible tokens and non-fungible tokens", + "parameters": [ + { + "schema": { + "type": "string" + }, + "in": "query", + "name": "trait_abi", + "required": true, + "description": "JSON abi of the trait." + }, + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "max number of contracts fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "index of first contract event to fetch" + } + ], + "responses": { + "200": { + "description": "GET list of contracts", + "content": { + "application/json": { + "schema": { + "title": "ContractListResponse", + "description": "GET list of contracts", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "results": { + "type": "array", + "items": { + "title": "SmartContract", + "description": "A Smart Contract Detail", + "type": "object", + "properties": { + "tx_id": { + "type": "string" + }, + "canonical": { + "type": "boolean" + }, + "contract_id": { + "type": "string" + }, + "block_height": { + "type": "integer" + }, + "clarity_version": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "source_code": { + "type": "string" + }, + "abi": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "tx_id", + "canonical", + "contract_id", + "block_height", + "clarity_version", + "source_code", + "abi" + ] + } + } + }, + "required": [ + "limit", + "offset", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/contract/{contract_id}": { + "get": { + "operationId": "get_contract_by_id", + "summary": "Get contract info", + "tags": [ + "Smart Contracts" + ], + "description": "Retrieves details of a contract with a given `contract_id`", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles", + "in": "path", + "name": "contract_id", + "required": true, + "description": "Contract identifier formatted as `.`" + } + ], + "responses": { + "200": { + "description": "A Smart Contract Detail", + "content": { + "application/json": { + "schema": { + "title": "SmartContract", + "description": "A Smart Contract Detail", + "type": "object", + "properties": { + "tx_id": { + "type": "string" + }, + "canonical": { + "type": "boolean" + }, + "contract_id": { + "type": "string" + }, + "block_height": { + "type": "integer" + }, + "clarity_version": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "source_code": { + "type": "string" + }, + "abi": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "tx_id", + "canonical", + "contract_id", + "block_height", + "clarity_version", + "source_code", + "abi" + ] + } + } + } + } + } + } + }, + "/extended/v1/contract/{contract_id}/events": { + "get": { + "operationId": "get_contract_events_by_id", + "summary": "Get contract events", + "tags": [ + "Smart Contracts" + ], + "description": "Retrieves a list of events that have been triggered by a given `contract_id`", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "max number of events to fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "type": "string" + }, + "example": "SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles", + "in": "path", + "name": "contract_id", + "required": true, + "description": "Contract identifier formatted as `.`" + } + ], + "responses": { + "200": { + "description": "List of events", + "content": { + "application/json": { + "schema": { + "description": "List of events", + "type": "object", + "properties": { + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/fee_rate/": { + "post": { + "operationId": "fetch_fee_rate", + "summary": "Fetch fee rate", + "tags": [ + "Fees" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](/api/get-approximate-fees-for-a-given-transaction).\n\n Retrieves estimated fee rate.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "title": "FeeRateRequest", + "description": "Request to fetch fee for a transaction", + "type": "object", + "properties": { + "transaction": { + "description": "A serialized transaction", + "type": "string" + } + }, + "required": [ + "transaction" + ] + } + } + }, + "required": true, + "description": "Request to fetch fee for a transaction" + }, + "deprecated": true, + "responses": { + "200": { + "description": "Get fee rate information.", + "content": { + "application/json": { + "schema": { + "title": "FeeRate", + "description": "Get fee rate information.", + "type": "object", + "properties": { + "fee_rate": { + "type": "integer" + } + }, + "required": [ + "fee_rate" + ] + } + } + } + } + } + } + }, + "/extended/v1/microblock/": { + "get": { + "operationId": "get_microblock_list", + "summary": "Get recent microblocks", + "tags": [ + "Microblocks" + ], + "description": "Retrieves a list of microblocks.\n\n If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 200, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Max number of microblocks to fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + } + ], + "responses": { + "200": { + "description": "GET request that returns microblocks", + "content": { + "application/json": { + "schema": { + "title": "MicroblockListResponse", + "description": "GET request that returns microblocks", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "Microblock", + "description": "A microblock", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if the microblock corresponds to the canonical chain tip.", + "type": "boolean" + }, + "microblock_canonical": { + "description": "Set to `true` if the microblock was not orphaned in a following anchor block. Defaults to `true` if the following anchor block has not yet been created.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The SHA512/256 hash of this microblock.", + "type": "string" + }, + "microblock_sequence": { + "description": "A hint to describe how to order a set of microblocks. Starts at 0.", + "type": "integer" + }, + "microblock_parent_hash": { + "description": "The SHA512/256 hash of the previous signed microblock in this stream.", + "type": "string" + }, + "block_height": { + "description": "The anchor block height that confirmed this microblock.", + "type": "integer" + }, + "parent_block_height": { + "description": "The height of the anchor block that preceded this microblock.", + "type": "integer" + }, + "parent_block_hash": { + "description": "The hash of the anchor block that preceded this microblock.", + "type": "string" + }, + "parent_burn_block_hash": { + "description": "The hash of the Bitcoin block that preceded this microblock.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "The block timestamp of the Bitcoin block that preceded this microblock.", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the bitcoin block that preceded this microblock.", + "type": "string" + }, + "parent_burn_block_height": { + "description": "The height of the Bitcoin block that preceded this microblock.", + "type": "integer" + }, + "block_hash": { + "anyOf": [ + { + "description": "The hash of the anchor block that confirmed this microblock. This wil be empty for unanchored microblocks", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "txs": { + "description": "List of transactions included in the microblock", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "canonical", + "microblock_canonical", + "microblock_hash", + "microblock_sequence", + "microblock_parent_hash", + "block_height", + "parent_block_height", + "parent_block_hash", + "parent_burn_block_hash", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "parent_burn_block_height", + "block_hash", + "txs" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/microblock/{hash}": { + "get": { + "operationId": "get_microblock_by_hash", + "summary": "Get microblock", + "tags": [ + "Microblocks" + ], + "description": "Retrieves a specific microblock by `hash`", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "0x3bfcdf84b3012adb544cf0f6df4835f93418c2269a3881885e27b3d58eb82d47", + "in": "path", + "name": "hash", + "required": true, + "description": "Hash of the microblock" + } + ], + "responses": { + "200": { + "description": "A microblock", + "content": { + "application/json": { + "schema": { + "title": "Microblock", + "description": "A microblock", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if the microblock corresponds to the canonical chain tip.", + "type": "boolean" + }, + "microblock_canonical": { + "description": "Set to `true` if the microblock was not orphaned in a following anchor block. Defaults to `true` if the following anchor block has not yet been created.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The SHA512/256 hash of this microblock.", + "type": "string" + }, + "microblock_sequence": { + "description": "A hint to describe how to order a set of microblocks. Starts at 0.", + "type": "integer" + }, + "microblock_parent_hash": { + "description": "The SHA512/256 hash of the previous signed microblock in this stream.", + "type": "string" + }, + "block_height": { + "description": "The anchor block height that confirmed this microblock.", + "type": "integer" + }, + "parent_block_height": { + "description": "The height of the anchor block that preceded this microblock.", + "type": "integer" + }, + "parent_block_hash": { + "description": "The hash of the anchor block that preceded this microblock.", + "type": "string" + }, + "parent_burn_block_hash": { + "description": "The hash of the Bitcoin block that preceded this microblock.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "The block timestamp of the Bitcoin block that preceded this microblock.", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the bitcoin block that preceded this microblock.", + "type": "string" + }, + "parent_burn_block_height": { + "description": "The height of the Bitcoin block that preceded this microblock.", + "type": "integer" + }, + "block_hash": { + "anyOf": [ + { + "description": "The hash of the anchor block that confirmed this microblock. This wil be empty for unanchored microblocks", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "txs": { + "description": "List of transactions included in the microblock", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "canonical", + "microblock_canonical", + "microblock_hash", + "microblock_sequence", + "microblock_parent_hash", + "block_height", + "parent_block_height", + "parent_block_hash", + "parent_burn_block_hash", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "parent_burn_block_height", + "block_hash", + "txs" + ] + } + } + } + } + } + } + }, + "/extended/v1/microblock/unanchored/txs": { + "get": { + "operationId": "get_unanchored_txs", + "summary": "Get the list of current transactions that belong to unanchored microblocks", + "tags": [ + "Microblocks" + ], + "description": "Retrieves transactions that have been streamed in microblocks but not yet accepted or rejected in an anchor block", + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/block/": { + "get": { + "operationId": "get_block_list", + "summary": "Get recent blocks", + "tags": [ + "Blocks" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks).\n\n Retrieves a list of recently mined blocks\n\n If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 30, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "max number of blocks to fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "GET request that returns blocks", + "content": { + "application/json": { + "schema": { + "title": "BlockListResponse", + "description": "GET request that returns blocks", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "Block", + "description": "A block", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "txs": { + "description": "List of transactions included in the block", + "type": "array", + "items": { + "description": "Transaction ID", + "type": "string" + } + }, + "parent_microblock_hash": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "string" + }, + "parent_microblock_sequence": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "integer" + }, + "microblocks_accepted": { + "description": "List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblocks_streamed": { + "description": "List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblock_tx_count": { + "description": "List of txs counts in each accepted microblock", + "type": "object", + "additionalProperties": { + "type": "integer" + } + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "txs", + "parent_microblock_hash", + "parent_microblock_sequence", + "microblocks_accepted", + "microblocks_streamed", + "microblock_tx_count" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/block/by_height/{height}": { + "get": { + "operationId": "get_block_by_height", + "summary": "Get block by height", + "tags": [ + "Blocks" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get block](/api/get-block).\n\n Retrieves block details of a specific block at a given block height", + "parameters": [ + { + "schema": { + "minimum": 0, + "type": "integer" + }, + "example": 10000, + "in": "path", + "name": "height", + "required": true, + "description": "Height of the block" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "A block", + "content": { + "application/json": { + "schema": { + "title": "Block", + "description": "A block", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "txs": { + "description": "List of transactions included in the block", + "type": "array", + "items": { + "description": "Transaction ID", + "type": "string" + } + }, + "parent_microblock_hash": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "string" + }, + "parent_microblock_sequence": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "integer" + }, + "microblocks_accepted": { + "description": "List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblocks_streamed": { + "description": "List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblock_tx_count": { + "description": "List of txs counts in each accepted microblock", + "type": "object", + "additionalProperties": { + "type": "integer" + } + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "txs", + "parent_microblock_hash", + "parent_microblock_sequence", + "microblocks_accepted", + "microblocks_streamed", + "microblock_tx_count" + ] + } + } + } + } + } + } + }, + "/extended/v1/block/by_burn_block_height/{burn_block_height}": { + "get": { + "operationId": "get_block_by_burn_block_height", + "summary": "Get block by burnchain height", + "tags": [ + "Blocks" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks).\n\n Retrieves block details of a specific block for a given burn chain height", + "parameters": [ + { + "schema": { + "minimum": 0, + "type": "integer" + }, + "example": 744603, + "in": "path", + "name": "burn_block_height", + "required": true, + "description": "Height of the burn chain block" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "A block", + "content": { + "application/json": { + "schema": { + "title": "Block", + "description": "A block", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "txs": { + "description": "List of transactions included in the block", + "type": "array", + "items": { + "description": "Transaction ID", + "type": "string" + } + }, + "parent_microblock_hash": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "string" + }, + "parent_microblock_sequence": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "integer" + }, + "microblocks_accepted": { + "description": "List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblocks_streamed": { + "description": "List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblock_tx_count": { + "description": "List of txs counts in each accepted microblock", + "type": "object", + "additionalProperties": { + "type": "integer" + } + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "txs", + "parent_microblock_hash", + "parent_microblock_sequence", + "microblocks_accepted", + "microblocks_streamed", + "microblock_tx_count" + ] + } + } + } + } + } + } + }, + "/extended/v1/block/{hash}": { + "get": { + "operationId": "get_block_by_hash", + "summary": "Get block by hash", + "tags": [ + "Blocks" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get block](/api/get-block).\n \n Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block ('get_block_list' API) to get your block details.", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79", + "in": "path", + "name": "hash", + "required": true, + "description": "Hash of the block" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "A block", + "content": { + "application/json": { + "schema": { + "title": "Block", + "description": "A block", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "txs": { + "description": "List of transactions included in the block", + "type": "array", + "items": { + "description": "Transaction ID", + "type": "string" + } + }, + "parent_microblock_hash": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "string" + }, + "parent_microblock_sequence": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "integer" + }, + "microblocks_accepted": { + "description": "List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblocks_streamed": { + "description": "List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblock_tx_count": { + "description": "List of txs counts in each accepted microblock", + "type": "object", + "additionalProperties": { + "type": "integer" + } + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "txs", + "parent_microblock_hash", + "parent_microblock_sequence", + "microblocks_accepted", + "microblocks_streamed", + "microblock_tx_count" + ] + } + } + } + } + } + } + }, + "/extended/v1/block/by_burn_block_hash/{burn_block_hash}": { + "get": { + "operationId": "get_block_by_burn_block_hash", + "summary": "Get block by burnchain block hash", + "tags": [ + "Blocks" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks).\n\n Retrieves block details of a specific block for a given burnchain block hash", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "0x00000000000000000002bba732926cf68b6eda3e2cdbc2a85af79f10efeeeb10", + "in": "path", + "name": "burn_block_hash", + "required": true, + "description": "Hash of the burnchain block" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "A block", + "content": { + "application/json": { + "schema": { + "title": "Block", + "description": "A block", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "txs": { + "description": "List of transactions included in the block", + "type": "array", + "items": { + "description": "Transaction ID", + "type": "string" + } + }, + "parent_microblock_hash": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "string" + }, + "parent_microblock_sequence": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "integer" + }, + "microblocks_accepted": { + "description": "List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblocks_streamed": { + "description": "List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblock_tx_count": { + "description": "List of txs counts in each accepted microblock", + "type": "object", + "additionalProperties": { + "type": "integer" + } + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "txs", + "parent_microblock_hash", + "parent_microblock_sequence", + "microblocks_accepted", + "microblocks_streamed", + "microblock_tx_count" + ] + } + } + } + } + } + } + }, + "/extended/v1/burnchain/reward_slot_holders": { + "get": { + "operationId": "get_burnchain_reward_slot_holders", + "summary": "Get recent reward slot holders", + "tags": [ + "Stacking Rewards" + ], + "description": "Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 96, + "maximum": 250, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "max number of items to fetch" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "title": "List of burnchain reward recipients and amounts", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "BurnchainRewardSlotHolder", + "description": "Reward slot holder on the burnchain", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical burchchain tip", + "type": "boolean" + }, + "burn_block_hash": { + "description": "The hash representing the burnchain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the burnchain block", + "type": "integer" + }, + "address": { + "description": "The recipient address that validly received PoX commitments, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)", + "type": "string" + }, + "slot_index": { + "description": "The index position of the reward entry, useful for ordering when there's more than one slot per burnchain block", + "type": "integer" + } + }, + "required": [ + "canonical", + "burn_block_hash", + "burn_block_height", + "address", + "slot_index" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/burnchain/reward_slot_holders/{address}": { + "get": { + "operationId": "get_burnchain_reward_slot_holders_by_address", + "summary": "Get recent reward slot holder entries for the given address", + "tags": [ + "Stacking Rewards" + ], + "description": "Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments for a given reward slot holder recipient address.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 96, + "maximum": 250, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "type": "string" + }, + "example": "36hQtSEXBMevo5chpxhfAGiCTSC34QKgda", + "in": "path", + "name": "address", + "required": true, + "description": "Reward slot holder recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format" + } + ], + "responses": { + "200": { + "description": "List of burnchain reward recipients and amounts", + "content": { + "application/json": { + "schema": { + "title": "BurnchainRewardSlotHolderListResponse", + "description": "List of burnchain reward recipients and amounts", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "BurnchainRewardSlotHolder", + "description": "Reward slot holder on the burnchain", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical burchchain tip", + "type": "boolean" + }, + "burn_block_hash": { + "description": "The hash representing the burnchain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the burnchain block", + "type": "integer" + }, + "address": { + "description": "The recipient address that validly received PoX commitments, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)", + "type": "string" + }, + "slot_index": { + "description": "The index position of the reward entry, useful for ordering when there's more than one slot per burnchain block", + "type": "integer" + } + }, + "required": [ + "canonical", + "burn_block_hash", + "burn_block_height", + "address", + "slot_index" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/burnchain/rewards": { + "get": { + "operationId": "get_burnchain_reward_list", + "summary": "Get recent burnchain reward recipients", + "tags": [ + "Stacking Rewards" + ], + "description": "Retrieves a list of recent burnchain (e.g. Bitcoin) reward recipients with the associated amounts and block info", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 96, + "maximum": 250, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + } + ], + "responses": { + "200": { + "description": "List of burnchain reward recipients and amounts", + "content": { + "application/json": { + "schema": { + "description": "List of burnchain reward recipients and amounts", + "type": "object", + "properties": { + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + }, + "results": { + "type": "array", + "items": { + "title": "BurnchainReward", + "description": "Reward payment made on the burnchain", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical burchchain tip", + "type": "boolean" + }, + "burn_block_hash": { + "description": "The hash representing the burnchain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the burnchain block", + "type": "integer" + }, + "burn_amount": { + "description": "The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin)", + "type": "string" + }, + "reward_recipient": { + "description": "The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)", + "type": "string" + }, + "reward_amount": { + "description": "The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin)", + "type": "string" + }, + "reward_index": { + "description": "The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block", + "type": "integer" + } + }, + "required": [ + "canonical", + "burn_block_hash", + "burn_block_height", + "burn_amount", + "reward_recipient", + "reward_amount", + "reward_index" + ] + } + } + }, + "required": [ + "limit", + "offset", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/burnchain/rewards/{address}": { + "get": { + "operationId": "get_burnchain_reward_list_by_address", + "summary": "Get recent burnchain reward for the given recipient", + "tags": [ + "Stacking Rewards" + ], + "description": "Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the given recipient with the associated amounts and block info", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 96, + "maximum": 250, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "type": "string" + }, + "example": "36hQtSEXBMevo5chpxhfAGiCTSC34QKgda", + "in": "path", + "name": "address", + "required": true, + "description": "Reward recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format" + } + ], + "responses": { + "200": { + "description": "List of burnchain reward recipients and amounts", + "content": { + "application/json": { + "schema": { + "description": "List of burnchain reward recipients and amounts", + "type": "object", + "properties": { + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + }, + "results": { + "type": "array", + "items": { + "title": "BurnchainReward", + "description": "Reward payment made on the burnchain", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical burchchain tip", + "type": "boolean" + }, + "burn_block_hash": { + "description": "The hash representing the burnchain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the burnchain block", + "type": "integer" + }, + "burn_amount": { + "description": "The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin)", + "type": "string" + }, + "reward_recipient": { + "description": "The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)", + "type": "string" + }, + "reward_amount": { + "description": "The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin)", + "type": "string" + }, + "reward_index": { + "description": "The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block", + "type": "integer" + } + }, + "required": [ + "canonical", + "burn_block_hash", + "burn_block_height", + "burn_amount", + "reward_recipient", + "reward_amount", + "reward_index" + ] + } + } + }, + "required": [ + "limit", + "offset", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/burnchain/rewards/{address}/total": { + "get": { + "operationId": "get_burnchain_rewards_total_by_address", + "summary": "Get total burnchain rewards for the given recipient", + "tags": [ + "Stacking Rewards" + ], + "description": "Retrieves the total burnchain (e.g. Bitcoin) rewards for a given recipient `address`", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "36hQtSEXBMevo5chpxhfAGiCTSC34QKgda", + "in": "path", + "name": "address", + "required": true, + "description": "Reward recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format" + } + ], + "responses": { + "200": { + "description": "Total burnchain rewards made to a recipient", + "content": { + "application/json": { + "schema": { + "title": "BurnchainRewardsTotal", + "description": "Total burnchain rewards made to a recipient", + "type": "object", + "properties": { + "reward_recipient": { + "description": "The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)", + "type": "string" + }, + "reward_amount": { + "description": "The total amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin)", + "type": "string" + } + }, + "required": [ + "reward_recipient", + "reward_amount" + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/stx": { + "get": { + "operationId": "get_account_stx_balance", + "summary": "Get account STX balance", + "tags": [ + "Accounts" + ], + "description": "Retrieves STX token balance for a given Address or Contract Identifier.", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "examples": { + "60000": { + "value": "60000" + }, + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": { + "value": "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + } + }, + "in": "query", + "name": "until_block", + "required": false, + "description": "Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time." + }, + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + } + ], + "responses": { + "200": { + "description": "GET request that returns address balances", + "content": { + "application/json": { + "schema": { + "title": "AddressStxBalance", + "description": "GET request that returns address balances", + "type": "object", + "allOf": [ + { + "title": "StxBalance", + "type": "object", + "properties": { + "balance": { + "type": "string" + }, + "total_sent": { + "type": "string" + }, + "total_received": { + "type": "string" + }, + "total_fees_sent": { + "type": "string" + }, + "total_miner_rewards_received": { + "type": "string" + }, + "lock_tx_id": { + "description": "The transaction where the lock event occurred. Empty if no tokens are locked.", + "type": "string" + }, + "locked": { + "description": "The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked.", + "type": "string" + }, + "lock_height": { + "description": "The STX chain block height of when the lock event occurred. Zero if no tokens are locked.", + "type": "integer" + }, + "burnchain_lock_height": { + "description": "The burnchain block height of when the lock event occurred. Zero if no tokens are locked.", + "type": "integer" + }, + "burnchain_unlock_height": { + "description": "The burnchain block height of when the tokens unlock. Zero if no tokens are locked.", + "type": "integer" + } + }, + "required": [ + "balance", + "total_sent", + "total_received", + "total_fees_sent", + "total_miner_rewards_received", + "lock_tx_id", + "locked", + "lock_height", + "burnchain_lock_height", + "burnchain_unlock_height" + ] + }, + { + "type": "object", + "properties": { + "token_offering_locked": { + "title": "AddressTokenOfferingLocked", + "description": "Token Offering Locked", + "type": "object", + "properties": { + "total_locked": { + "description": "Micro-STX amount still locked at current block height.", + "type": "string" + }, + "total_unlocked": { + "description": "Micro-STX amount unlocked at current block height.", + "type": "string" + }, + "unlock_schedule": { + "type": "array", + "items": { + "title": "AddressUnlockSchedule", + "description": "Unlock schedule amount and block height", + "type": "object", + "properties": { + "amount": { + "description": "Micro-STX amount locked at this block height.", + "type": "string" + }, + "block_height": { + "type": "integer" + } + }, + "required": [ + "amount", + "block_height" + ] + } + } + }, + "required": [ + "total_locked", + "total_unlocked", + "unlock_schedule" + ] + } + } + } + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/balances": { + "get": { + "operationId": "get_account_balance", + "summary": "Get account balances", + "tags": [ + "Accounts" + ], + "description": "Retrieves total account balance information for a given Address or Contract Identifier. This includes the balances of STX Tokens, Fungible Tokens and Non-Fungible Tokens for the account.", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "examples": { + "60000": { + "value": "60000" + }, + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": { + "value": "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + } + }, + "in": "query", + "name": "until_block", + "required": false, + "description": "Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time." + }, + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + } + ], + "responses": { + "200": { + "description": "GET request that returns address balances", + "content": { + "application/json": { + "schema": { + "title": "AddressBalanceResponse", + "description": "GET request that returns address balances", + "type": "object", + "properties": { + "stx": { + "title": "StxBalance", + "type": "object", + "properties": { + "balance": { + "type": "string" + }, + "total_sent": { + "type": "string" + }, + "total_received": { + "type": "string" + }, + "total_fees_sent": { + "type": "string" + }, + "total_miner_rewards_received": { + "type": "string" + }, + "lock_tx_id": { + "description": "The transaction where the lock event occurred. Empty if no tokens are locked.", + "type": "string" + }, + "locked": { + "description": "The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked.", + "type": "string" + }, + "lock_height": { + "description": "The STX chain block height of when the lock event occurred. Zero if no tokens are locked.", + "type": "integer" + }, + "burnchain_lock_height": { + "description": "The burnchain block height of when the lock event occurred. Zero if no tokens are locked.", + "type": "integer" + }, + "burnchain_unlock_height": { + "description": "The burnchain block height of when the tokens unlock. Zero if no tokens are locked.", + "type": "integer" + } + }, + "required": [ + "balance", + "total_sent", + "total_received", + "total_fees_sent", + "total_miner_rewards_received", + "lock_tx_id", + "locked", + "lock_height", + "burnchain_lock_height", + "burnchain_unlock_height" + ] + }, + "fungible_tokens": { + "type": "object", + "additionalProperties": { + "title": "FtBalance", + "type": "object", + "properties": { + "balance": { + "type": "string" + }, + "total_sent": { + "type": "string" + }, + "total_received": { + "type": "string" + } + }, + "required": [ + "balance", + "total_sent", + "total_received" + ] + } + }, + "non_fungible_tokens": { + "type": "object", + "additionalProperties": { + "title": "NftBalance", + "type": "object", + "properties": { + "count": { + "type": "string" + }, + "total_sent": { + "type": "string" + }, + "total_received": { + "type": "string" + } + }, + "required": [ + "count", + "total_sent", + "total_received" + ] + } + }, + "token_offering_locked": { + "title": "AddressTokenOfferingLocked", + "description": "Token Offering Locked", + "type": "object", + "properties": { + "total_locked": { + "description": "Micro-STX amount still locked at current block height.", + "type": "string" + }, + "total_unlocked": { + "description": "Micro-STX amount unlocked at current block height.", + "type": "string" + }, + "unlock_schedule": { + "type": "array", + "items": { + "title": "AddressUnlockSchedule", + "description": "Unlock schedule amount and block height", + "type": "object", + "properties": { + "amount": { + "description": "Micro-STX amount locked at this block height.", + "type": "string" + }, + "block_height": { + "type": "integer" + } + }, + "required": [ + "amount", + "block_height" + ] + } + } + }, + "required": [ + "total_locked", + "total_unlocked", + "unlock_schedule" + ] + } + }, + "required": [ + "stx", + "fungible_tokens", + "non_fungible_tokens" + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/transactions": { + "get": { + "operationId": "get_account_transactions", + "summary": "Get account transactions", + "tags": [ + "Accounts" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get address transactions](/api/get-address-transactions).\n\n Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types).\n\n If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "type": "integer" + }, + "in": "query", + "name": "height", + "required": false, + "description": "Filter for transactions only at this given block height" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "examples": { + "60000": { + "value": "60000" + }, + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": { + "value": "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + } + }, + "in": "query", + "name": "until_block", + "required": false, + "description": "Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time." + }, + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "GET request that returns account transactions", + "content": { + "application/json": { + "schema": { + "title": "AddressTransactionsListResponse", + "description": "GET request that returns account transactions", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/{tx_id}/with_transfers": { + "get": { + "operationId": "get_single_transaction_with_transfers", + "summary": "Get account transaction information for specific transaction", + "tags": [ + "Accounts" + ], + "description": "**NOTE:** This endpoint is deprecated in favor of [Get events for an address transaction](/api/get-address-transaction-events).\n\n Retrieves transaction details for a given Transaction Id `tx_id`, for a given account or contract Identifier.", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + }, + { + "schema": { + "type": "string" + }, + "example": "0x34d79c7cfc2fe525438736733e501a4bf0308a5556e3e080d1e2c0858aad7448", + "in": "path", + "name": "tx_id", + "required": true, + "description": "Transaction ID" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "Transaction with STX transfers for a given address", + "content": { + "application/json": { + "schema": { + "title": "AddressTransactionWithTransfers", + "description": "Transaction with STX transfers for a given address", + "type": "object", + "properties": { + "tx": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + }, + "stx_sent": { + "description": "Total sent from the given address, including the tx fee, in micro-STX as an integer string.", + "type": "string" + }, + "stx_received": { + "description": "Total received by the given address in micro-STX as an integer string.", + "type": "string" + }, + "stx_transfers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "description": "Amount transferred in micro-STX as an integer string.", + "type": "string" + }, + "sender": { + "description": "Principal that sent STX. This is unspecified if the STX were minted.", + "type": "string" + }, + "recipient": { + "description": "Principal that received STX. This is unspecified if the STX were burned.", + "type": "string" + } + }, + "required": [ + "amount" + ] + } + }, + "ft_transfers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "description": "Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals.", + "type": "string" + }, + "asset_identifier": { + "description": "Fungible Token asset identifier.", + "type": "string" + }, + "sender": { + "description": "Principal that sent the asset.", + "type": "string" + }, + "recipient": { + "description": "Principal that received the asset.", + "type": "string" + } + }, + "required": [ + "amount", + "asset_identifier" + ] + } + }, + "nft_transfers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "Non Fungible Token asset value.", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset_identifier": { + "description": "Non Fungible Token asset identifier.", + "type": "string" + }, + "sender": { + "description": "Principal that sent the asset.", + "type": "string" + }, + "recipient": { + "description": "Principal that received the asset.", + "type": "string" + } + }, + "required": [ + "value", + "asset_identifier" + ] + } + } + }, + "required": [ + "tx", + "stx_sent", + "stx_received", + "stx_transfers" + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/transactions_with_transfers": { + "get": { + "operationId": "get_account_transactions_with_transfers", + "summary": "Get account transactions including STX transfers for each transaction.", + "tags": [ + "Accounts" + ], + "description": "Retrieve all transactions for an account or contract identifier including STX transfers for each transaction.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "type": "integer" + }, + "in": "query", + "name": "height", + "required": false, + "description": "Filter for transactions only at this given block height" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "examples": { + "60000": { + "value": "60000" + }, + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": { + "value": "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + } + }, + "in": "query", + "name": "until_block", + "required": false, + "description": "Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time." + }, + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + } + ], + "deprecated": true, + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "title": "AddressTransactionsWithTransfersListResponse", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "AddressTransactionWithTransfers", + "description": "Transaction with STX transfers for a given address", + "type": "object", + "properties": { + "tx": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + }, + "stx_sent": { + "description": "Total sent from the given address, including the tx fee, in micro-STX as an integer string.", + "type": "string" + }, + "stx_received": { + "description": "Total received by the given address in micro-STX as an integer string.", + "type": "string" + }, + "stx_transfers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "description": "Amount transferred in micro-STX as an integer string.", + "type": "string" + }, + "sender": { + "description": "Principal that sent STX. This is unspecified if the STX were minted.", + "type": "string" + }, + "recipient": { + "description": "Principal that received STX. This is unspecified if the STX were burned.", + "type": "string" + } + }, + "required": [ + "amount" + ] + } + }, + "ft_transfers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "description": "Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals.", + "type": "string" + }, + "asset_identifier": { + "description": "Fungible Token asset identifier.", + "type": "string" + }, + "sender": { + "description": "Principal that sent the asset.", + "type": "string" + }, + "recipient": { + "description": "Principal that received the asset.", + "type": "string" + } + }, + "required": [ + "amount", + "asset_identifier" + ] + } + }, + "nft_transfers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "description": "Non Fungible Token asset value.", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset_identifier": { + "description": "Non Fungible Token asset identifier.", + "type": "string" + }, + "sender": { + "description": "Principal that sent the asset.", + "type": "string" + }, + "recipient": { + "description": "Principal that received the asset.", + "type": "string" + } + }, + "required": [ + "value", + "asset_identifier" + ] + } + } + }, + "required": [ + "tx", + "stx_sent", + "stx_received", + "stx_transfers" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/assets": { + "get": { + "operationId": "get_account_assets", + "summary": "Get account assets", + "tags": [ + "Accounts" + ], + "description": "Retrieves a list of all assets events associated with an account or a Contract Identifier. This includes Transfers, Mints.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "examples": { + "60000": { + "value": "60000" + }, + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": { + "value": "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + } + }, + "in": "query", + "name": "until_block", + "required": false, + "description": "Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time." + }, + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "title": "AddressAssetsListResponse", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/stx_inbound": { + "get": { + "operationId": "get_account_inbound", + "summary": "Get inbound STX transfers", + "tags": [ + "Accounts" + ], + "description": "Retrieves a list of STX transfers with memos to the given principal. This includes regular transfers from a stx-transfer transaction type,\n and transfers from contract-call transactions a the `send-many-memo` bulk sending contract.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "type": "integer" + }, + "in": "query", + "name": "height", + "required": false, + "description": "Filter for transactions only at this given block height" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "examples": { + "60000": { + "value": "60000" + }, + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": { + "value": "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + } + }, + "in": "query", + "name": "until_block", + "required": false, + "description": "Block hash or block height. Return data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time." + }, + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "title": "AddressStxInboundListResponse", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "InboundStxTransfer", + "type": "object", + "properties": { + "sender": { + "description": "Principal that sent this transfer", + "type": "string" + }, + "amount": { + "description": "Transfer amount in micro-STX as integer string", + "type": "string" + }, + "memo": { + "description": "Hex encoded memo bytes associated with the transfer", + "type": "string" + }, + "block_height": { + "description": "Block height at which this transfer occurred", + "type": "integer" + }, + "tx_id": { + "description": "The transaction ID in which this transfer occurred", + "type": "string" + }, + "transfer_type": { + "description": "Indicates if the transfer is from a stx-transfer transaction or a contract-call transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "bulk-send" + ] + }, + { + "type": "string", + "enum": [ + "stx-transfer" + ] + }, + { + "type": "string", + "enum": [ + "stx-transfer-memo" + ] + } + ] + }, + "tx_index": { + "description": "Index of the transaction within a block", + "type": "integer" + } + }, + "required": [ + "sender", + "amount", + "memo", + "block_height", + "tx_id", + "transfer_type", + "tx_index" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/mempool": { + "get": { + "operationId": "get_address_mempool_transactions", + "summary": "Transactions for address", + "tags": [ + "Transactions" + ], + "description": "Retrieves all transactions for a given address that are currently in mempool", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + } + ], + "responses": { + "200": { + "description": "List of mempool transactions", + "content": { + "application/json": { + "schema": { + "description": "List of mempool transactions", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/address/{principal}/nonces": { + "get": { + "operationId": "get_account_nonces", + "summary": "Get the latest nonce used by an account", + "tags": [ + "Accounts" + ], + "description": "Retrieves the latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions.", + "parameters": [ + { + "schema": { + "minimum": 1, + "type": "integer" + }, + "example": 66119, + "in": "query", + "name": "block_height", + "required": false, + "description": "Optionally get the nonce at a given block height." + }, + { + "schema": { + "type": "string" + }, + "example": "0x72d53f3cba39e149dcd42708e535bdae03d73e60d2fe853aaf61c0b392f521e9", + "in": "query", + "name": "block_hash", + "required": false, + "description": "Optionally get the nonce at a given block hash. Note - Use either of the query parameters but not both at a time." + }, + { + "schema": { + "type": "string" + }, + "example": "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0", + "in": "path", + "name": "principal", + "required": true, + "description": "Stacks address or a Contract identifier" + } + ], + "responses": { + "200": { + "description": "The latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions", + "content": { + "application/json": { + "schema": { + "title": "AddressNonces", + "description": "The latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions", + "type": "object", + "properties": { + "last_mempool_tx_nonce": { + "anyOf": [ + { + "description": "The latest nonce found within mempool transactions sent by this address. Will be null if there are no current mempool transactions for this address.", + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "last_executed_tx_nonce": { + "anyOf": [ + { + "description": "The latest nonce found within transactions sent by this address, including unanchored microblock transactions. Will be null if there are no current transactions for this address.", + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "possible_next_nonce": { + "description": "The likely nonce required for creating the next transaction, based on the last nonces seen by the API. This can be incorrect if the API's mempool or transactions aren't fully synchronized, even by a small amount, or if a previous transaction is still propagating through the Stacks blockchain network when this endpoint is called.", + "type": "integer" + }, + "detected_missing_nonces": { + "description": "Nonces that appear to be missing and likely causing a mempool transaction to be stuck.", + "type": "array", + "items": { + "type": "integer" + } + }, + "detected_mempool_nonces": { + "description": "Nonces currently in mempool for this address.", + "type": "array", + "items": { + "type": "integer" + } + } + }, + "required": [ + "last_mempool_tx_nonce", + "last_executed_tx_nonce", + "possible_next_nonce", + "detected_missing_nonces", + "detected_mempool_nonces" + ] + } + } + } + } + } + } + }, + "/extended/v1/search/{id}": { + "get": { + "operationId": "search_by_id", + "summary": "Search", + "tags": [ + "Search" + ], + "description": "Search blocks, transactions, contracts, or accounts by hash/ID", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "in": "query", + "name": "include_metadata", + "required": false, + "description": "This includes the detailed data for purticular hash in the response" + }, + { + "schema": { + "type": "string" + }, + "example": "0xcf8b233f19f6c07d2dc1963302d2436efd36e9afac127bf6582824a13961c06d", + "in": "path", + "name": "id", + "required": true, + "description": "The hex hash string for a block or transaction, account address, or contract address" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "found": { + "type": "boolean", + "enum": [ + true + ] + }, + "result": { + "anyOf": [ + { + "title": "AddressSearchResult", + "description": "Address search result", + "type": "object", + "properties": { + "entity_id": { + "description": "The id used to search this query.", + "type": "string" + }, + "entity_type": { + "type": "string", + "enum": [ + "standard_address" + ] + }, + "metadata": { + "title": "AddressStxBalance", + "description": "GET request that returns address balances", + "type": "object", + "allOf": [ + { + "title": "StxBalance", + "type": "object", + "properties": { + "balance": { + "type": "string" + }, + "total_sent": { + "type": "string" + }, + "total_received": { + "type": "string" + }, + "total_fees_sent": { + "type": "string" + }, + "total_miner_rewards_received": { + "type": "string" + }, + "lock_tx_id": { + "description": "The transaction where the lock event occurred. Empty if no tokens are locked.", + "type": "string" + }, + "locked": { + "description": "The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked.", + "type": "string" + }, + "lock_height": { + "description": "The STX chain block height of when the lock event occurred. Zero if no tokens are locked.", + "type": "integer" + }, + "burnchain_lock_height": { + "description": "The burnchain block height of when the lock event occurred. Zero if no tokens are locked.", + "type": "integer" + }, + "burnchain_unlock_height": { + "description": "The burnchain block height of when the tokens unlock. Zero if no tokens are locked.", + "type": "integer" + } + }, + "required": [ + "balance", + "total_sent", + "total_received", + "total_fees_sent", + "total_miner_rewards_received", + "lock_tx_id", + "locked", + "lock_height", + "burnchain_lock_height", + "burnchain_unlock_height" + ] + }, + { + "type": "object", + "properties": { + "token_offering_locked": { + "title": "AddressTokenOfferingLocked", + "description": "Token Offering Locked", + "type": "object", + "properties": { + "total_locked": { + "description": "Micro-STX amount still locked at current block height.", + "type": "string" + }, + "total_unlocked": { + "description": "Micro-STX amount unlocked at current block height.", + "type": "string" + }, + "unlock_schedule": { + "type": "array", + "items": { + "title": "AddressUnlockSchedule", + "description": "Unlock schedule amount and block height", + "type": "object", + "properties": { + "amount": { + "description": "Micro-STX amount locked at this block height.", + "type": "string" + }, + "block_height": { + "type": "integer" + } + }, + "required": [ + "amount", + "block_height" + ] + } + } + }, + "required": [ + "total_locked", + "total_unlocked", + "unlock_schedule" + ] + } + } + } + ] + } + }, + "required": [ + "entity_id", + "entity_type" + ] + }, + { + "title": "BlockSearchResult", + "description": "Block search result", + "type": "object", + "properties": { + "entity_id": { + "description": "The id used to search this query.", + "type": "string" + }, + "entity_type": { + "type": "string", + "enum": [ + "block_hash" + ] + }, + "block_data": { + "type": "object", + "properties": { + "canonical": { + "type": "boolean" + }, + "hash": { + "type": "string" + }, + "parent_block_hash": { + "type": "string" + }, + "burn_block_time": { + "type": "integer" + }, + "height": { + "type": "integer" + } + }, + "required": [ + "canonical", + "hash", + "parent_block_hash", + "burn_block_time", + "height" + ] + }, + "metadata": { + "title": "Block", + "description": "A block", + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "txs": { + "description": "List of transactions included in the block", + "type": "array", + "items": { + "description": "Transaction ID", + "type": "string" + } + }, + "parent_microblock_hash": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "string" + }, + "parent_microblock_sequence": { + "description": "The hash of the last streamed block that precedes this block to which this block is to be appended. Not every anchored block will have a parent microblock stream. An anchored block that does not have a parent microblock stream has the parent microblock hash set to an empty string, and the parent microblock sequence number set to -1.", + "type": "integer" + }, + "microblocks_accepted": { + "description": "List of microblocks that were accepted in this anchor block. Not every anchored block will have a accepted all (or any) of the previously streamed microblocks. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblocks_streamed": { + "description": "List of microblocks that were streamed/produced by this anchor block's miner. This list only includes microblocks that were accepted in the following anchor block. Microblocks that were orphaned are not included in this list.", + "type": "array", + "items": { + "description": "Microblock hash", + "type": "string" + } + }, + "microblock_tx_count": { + "description": "List of txs counts in each accepted microblock", + "type": "object", + "additionalProperties": { + "type": "integer" + } + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "txs", + "parent_microblock_hash", + "parent_microblock_sequence", + "microblocks_accepted", + "microblocks_streamed", + "microblock_tx_count" + ] + } + }, + "required": [ + "entity_id", + "entity_type", + "block_data" + ] + }, + { + "title": "ContractSearchResult", + "description": "Contract search result", + "type": "object", + "properties": { + "entity_id": { + "description": "The id used to search this query.", + "type": "string" + }, + "entity_type": { + "type": "string", + "enum": [ + "contract_address" + ] + }, + "tx_data": { + "type": "object", + "properties": { + "canonical": { + "type": "boolean" + }, + "block_hash": { + "type": "string" + }, + "burn_block_time": { + "type": "integer" + }, + "block_height": { + "type": "integer" + }, + "tx_type": { + "type": "string" + }, + "tx_id": { + "type": "string" + } + }, + "required": [ + "tx_type", + "tx_id" + ] + }, + "metadata": { + "anyOf": [ + { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + }, + { + "anyOf": [ + { + "title": "TokenTransferMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + ] + } + }, + "required": [ + "entity_id", + "entity_type" + ] + }, + { + "title": "MempoolTxSearchResult", + "description": "Mempool transaction search result", + "type": "object", + "properties": { + "entity_id": { + "description": "The id used to search this query.", + "type": "string" + }, + "entity_type": { + "type": "string", + "enum": [ + "mempool_tx_id" + ] + }, + "tx_data": { + "type": "object", + "properties": { + "tx_type": { + "type": "string" + } + }, + "required": [ + "tx_type" + ] + }, + "metadata": { + "anyOf": [ + { + "title": "TokenTransferMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeMempoolTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "pending" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_by_fee" + ] + }, + { + "type": "string", + "enum": [ + "dropped_replace_across_fork" + ] + }, + { + "type": "string", + "enum": [ + "dropped_too_expensive" + ] + }, + { + "type": "string", + "enum": [ + "dropped_stale_garbage_collect" + ] + }, + { + "type": "string", + "enum": [ + "dropped_problematic" + ] + } + ] + }, + "receipt_time": { + "description": "A unix timestamp (in seconds) indicating when the transaction broadcast was received by the node.", + "type": "integer" + }, + "receipt_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when the transaction broadcast was received by the node.", + "type": "string" + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "tx_status", + "receipt_time", + "receipt_time_iso", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + }, + "required": [ + "entity_id", + "entity_type", + "tx_data" + ] + }, + { + "title": "TxSearchResult", + "description": "Transaction search result", + "type": "object", + "properties": { + "entity_id": { + "description": "The id used to search this query.", + "type": "string" + }, + "entity_type": { + "type": "string", + "enum": [ + "tx_id" + ] + }, + "tx_data": { + "type": "object", + "properties": { + "canonical": { + "type": "boolean" + }, + "block_hash": { + "type": "string" + }, + "burn_block_time": { + "type": "integer" + }, + "block_height": { + "type": "integer" + }, + "tx_type": { + "type": "string" + } + }, + "required": [ + "canonical", + "block_hash", + "burn_block_time", + "block_height", + "tx_type" + ] + }, + "metadata": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + }, + "required": [ + "entity_id", + "entity_type", + "tx_data" + ] + } + ] + } + }, + "required": [ + "found", + "result" + ] + } + } + } + }, + "404": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "found": { + "type": "boolean", + "enum": [ + false + ] + }, + "result": { + "type": "object", + "properties": { + "entity_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "tx_id" + ] + }, + { + "type": "string", + "enum": [ + "mempool_tx_id" + ] + }, + { + "type": "string", + "enum": [ + "block_hash" + ] + }, + { + "type": "string", + "enum": [ + "standard_address" + ] + }, + { + "type": "string", + "enum": [ + "contract_address" + ] + }, + { + "type": "string", + "enum": [ + "unknown_hash" + ] + }, + { + "type": "string", + "enum": [ + "invalid_term" + ] + } + ] + } + }, + "required": [ + "entity_type" + ] + }, + "error": { + "type": "string" + } + }, + "required": [ + "found", + "result", + "error" + ] + } + } + } + } + } + } + }, + "/extended/v1/{pox}/events": { + "get": { + "summary": "Get latest PoX events", + "tags": [ + "Stacking" + ], + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 96, + "maximum": 200, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "pox2" + ] + }, + { + "type": "string", + "enum": [ + "pox3" + ] + }, + { + "type": "string", + "enum": [ + "pox4" + ] + } + ] + }, + "in": "path", + "name": "pox", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response" + } + } + } + }, + "/extended/v1/{pox}/tx/{tx_id}": { + "get": { + "summary": "Get PoX events for a transaction", + "tags": [ + "Stacking" + ], + "parameters": [ + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "pox2" + ] + }, + { + "type": "string", + "enum": [ + "pox3" + ] + }, + { + "type": "string", + "enum": [ + "pox4" + ] + } + ] + }, + "in": "path", + "name": "pox", + "required": true + }, + { + "schema": { + "type": "string" + }, + "in": "path", + "name": "tx_id", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response" + } + } + } + }, + "/extended/v1/{pox}/stacker/{principal}": { + "get": { + "summary": "Get events for a stacking address", + "tags": [ + "Stacking" + ], + "parameters": [ + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "pox2" + ] + }, + { + "type": "string", + "enum": [ + "pox3" + ] + }, + { + "type": "string", + "enum": [ + "pox4" + ] + } + ] + }, + "in": "path", + "name": "pox", + "required": true + }, + { + "schema": { + "type": "string" + }, + "in": "path", + "name": "principal", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response" + } + } + } + }, + "/extended/v1/{pox}/{pool_principal}/delegations": { + "get": { + "operationId": "get_pool_delegations", + "summary": "Stacking pool members", + "tags": [ + "Stacking" + ], + "description": "Retrieves the list of stacking pool members for a given delegator principal.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 100, + "maximum": 200, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "minimum": 1, + "type": "integer" + }, + "in": "query", + "name": "after_block", + "required": false, + "description": "If specified, only delegation events after the given block will be included" + }, + { + "schema": { + "minimum": 1, + "type": "integer" + }, + "in": "query", + "name": "height", + "required": false + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "pox2" + ] + }, + { + "type": "string", + "enum": [ + "pox3" + ] + }, + { + "type": "string", + "enum": [ + "pox4" + ] + } + ] + }, + "in": "path", + "name": "pox", + "required": true + }, + { + "schema": { + "type": "string" + }, + "example": "SPSCWDV3RKV5ZRN1FQD84YE1NQFEDJ9R1F4DYQ11", + "in": "path", + "name": "pool_principal", + "required": true, + "description": "Address principal of the stacking pool delegator" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "stacker": { + "description": "The principal of the pool member that issued the delegation", + "type": "string" + }, + "pox_addr": { + "description": "The pox-addr value specified by the stacker in the delegation operation", + "type": "string" + }, + "amount_ustx": { + "description": "The amount of uSTX delegated by the stacker", + "type": "string" + }, + "burn_block_unlock_height": { + "description": "The optional burnchain block unlock height that the stacker may have specified", + "type": "integer" + }, + "block_height": { + "description": "The block height at which the stacker delegation transaction was mined at", + "type": "integer" + }, + "tx_id": { + "description": "The tx_id of the stacker delegation operation", + "type": "string" + } + }, + "required": [ + "stacker", + "amount_ustx", + "block_height", + "tx_id" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v1/faucets/btc": { + "post": { + "operationId": "run_faucet_btc", + "summary": "Add testnet BTC tokens to address", + "tags": [ + "Faucets" + ], + "description": "Add 1 BTC token to the specified testnet BTC address.\n\n The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block\n explorer. The tokens are delivered once the transaction has been included in a block.\n\n **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "address": { + "description": "A valid testnet BTC address", + "examples": [ + "2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts" + ], + "type": "string" + } + } + }, + { + "type": "null" + } + ] + } + } + } + }, + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts", + "in": "query", + "name": "address", + "required": false, + "description": "A valid testnet BTC address" + } + ], + "responses": { + "200": { + "description": "POST request that initiates a transfer of tokens to a specified testnet address", + "content": { + "application/json": { + "schema": { + "title": "RunFaucetResponse", + "description": "POST request that initiates a transfer of tokens to a specified testnet address", + "type": "object", + "properties": { + "success": { + "description": "Indicates if the faucet call was successful", + "type": "boolean", + "enum": [ + true + ] + }, + "txid": { + "description": "The transaction ID for the faucet call", + "type": "string" + }, + "raw_tx": { + "description": "Raw transaction in hex string representation", + "type": "string" + } + }, + "required": [ + "success", + "txid", + "raw_tx" + ] + } + } + } + }, + "4XX": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "enum": [ + false + ] + }, + "error": { + "description": "Error message", + "type": "string" + } + }, + "required": [ + "success", + "error" + ] + } + } + } + } + } + } + }, + "/extended/v1/faucets/btc/{address}": { + "get": { + "operationId": "get_btc_balance", + "summary": "Get BTC balance for address", + "tags": [ + "Faucets" + ], + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts", + "in": "path", + "name": "address", + "required": true, + "description": "A valid testnet BTC address" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "balance": { + "description": "Address balance in BTC", + "type": "number" + } + }, + "required": [ + "balance" + ] + } + } + } + }, + "4XX": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "enum": [ + false + ] + }, + "error": { + "description": "Error message", + "type": "string" + } + }, + "required": [ + "success", + "error" + ] + } + } + } + } + } + } + }, + "/extended/v1/faucets/stx": { + "post": { + "operationId": "run_faucet_stx", + "summary": "Get STX testnet tokens", + "tags": [ + "Faucets" + ], + "description": "Add 500 STX tokens to the specified testnet address. Testnet STX addresses begin with `ST`. If the `stacking`\n parameter is set to `true`, the faucet will add the required number of tokens for individual stacking to the\n specified testnet address.\n\n The endpoint returns the transaction ID, which you can use to view the transaction in the\n [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has\n been included in an anchor block.\n\n A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing\n failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat).\n\n **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "address": { + "description": "[Deprecated -- use query param rather than POST body] A valid testnet STX address", + "examples": [ + "ST3M7N9Q9HDRM7RVP1Q26P0EE69358PZZAZD7KMXQ" + ], + "type": "string" + } + } + }, + { + "type": "null" + } + ] + } + } + } + }, + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "ST3M7N9Q9HDRM7RVP1Q26P0EE69358PZZAZD7KMXQ", + "in": "query", + "name": "address", + "required": false, + "description": "A valid testnet STX address" + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "in": "query", + "name": "stacking", + "required": false, + "description": "Request the amount of STX tokens needed for individual address stacking" + } + ], + "responses": { + "200": { + "description": "POST request that initiates a transfer of tokens to a specified testnet address", + "content": { + "application/json": { + "schema": { + "title": "RunFaucetResponse", + "description": "POST request that initiates a transfer of tokens to a specified testnet address", + "type": "object", + "properties": { + "success": { + "description": "Indicates if the faucet call was successful", + "type": "boolean", + "enum": [ + true + ] + }, + "txId": { + "description": "The transaction ID for the faucet call", + "type": "string" + }, + "txRaw": { + "description": "Raw transaction in hex string representation", + "type": "string" + } + }, + "required": [ + "success", + "txId", + "txRaw" + ] + } + } + } + }, + "4XX": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "success": { + "description": "Indicates if the faucet call was successful", + "type": "boolean", + "enum": [ + false + ] + }, + "error": { + "description": "Error message", + "type": "string" + }, + "help": { + "type": "string" + } + }, + "required": [ + "success", + "error" + ] + } + } + } + } + } + } + }, + "/extended/v2/blocks/": { + "get": { + "operationId": "get_blocks", + "summary": "Get blocks", + "tags": [ + "Blocks" + ], + "description": "Retrieves a list of recently mined blocks", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 30, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "parent_index_block_hash": { + "description": "Index block hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "tx_count": { + "description": "Number of transactions included in the block", + "type": "integer" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "parent_index_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "tx_count", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v2/blocks/average-times": { + "get": { + "operationId": "get_average_block_times", + "summary": "Get average block times", + "tags": [ + "Blocks" + ], + "description": "Retrieves average block times (in seconds)", + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "last_1h": { + "description": "Average block times over the last hour (in seconds)", + "type": "number" + }, + "last_24h": { + "description": "Average block times over the last 24 hours (in seconds)", + "type": "number" + }, + "last_7d": { + "description": "Average block times over the last 7 days (in seconds)", + "type": "number" + }, + "last_30d": { + "description": "Average block times over the last 30 days (in seconds)", + "type": "number" + } + }, + "required": [ + "last_1h", + "last_24h", + "last_7d", + "last_30d" + ] + } + } + } + } + } + } + }, + "/extended/v2/blocks/{height_or_hash}": { + "get": { + "operationId": "get_block", + "summary": "Get block", + "tags": [ + "Blocks" + ], + "description": "Retrieves a single block", + "parameters": [ + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "latest" + ] + }, + { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Block hash", + "description": "Block hash", + "examples": [ + "daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133" + ], + "type": "string" + }, + { + "pattern": "^[0-9]+$", + "title": "Block height", + "description": "Block height", + "examples": [ + "777678" + ], + "type": "string" + } + ] + }, + "in": "path", + "name": "height_or_hash", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "parent_index_block_hash": { + "description": "Index block hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "tx_count": { + "description": "Number of transactions included in the block", + "type": "integer" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "parent_index_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "tx_count", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length" + ] + } + } + } + } + } + } + }, + "/extended/v2/blocks/{height_or_hash}/transactions": { + "get": { + "operationId": "get_transactions_by_block", + "summary": "Get transactions by block", + "tags": [ + "Transactions" + ], + "description": "Retrieves transactions confirmed in a single block", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "latest" + ] + }, + { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Block hash", + "description": "Block hash", + "examples": [ + "daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133" + ], + "type": "string" + }, + { + "pattern": "^[0-9]+$", + "title": "Block height", + "description": "Block height", + "examples": [ + "777678" + ], + "type": "string" + } + ] + }, + "in": "path", + "name": "height_or_hash", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v2/burn-blocks/": { + "get": { + "operationId": "get_burn_blocks", + "summary": "Get burn blocks", + "tags": [ + "Burn Blocks" + ], + "description": "Retrieves a list of recent burn blocks", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 30, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "stacks_blocks": { + "description": "Hashes of the Stacks blocks included in the burn block", + "type": "array", + "items": { + "type": "string" + } + }, + "avg_block_time": { + "description": "Average time between blocks in seconds. Returns 0 if there is only one block in the burn block.", + "type": "integer" + }, + "total_tx_count": { + "description": "Total number of transactions in the Stacks blocks associated with this burn block", + "type": "integer" + } + }, + "required": [ + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "stacks_blocks", + "avg_block_time", + "total_tx_count" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v2/burn-blocks/{height_or_hash}": { + "get": { + "operationId": "get_burn_block", + "summary": "Get burn block", + "tags": [ + "Burn Blocks" + ], + "description": "Retrieves a single burn block", + "parameters": [ + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "latest" + ] + }, + { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Burn block hash", + "description": "Burn block hash", + "examples": [ + "0000000000000000000452773967cdd62297137cdaf79950c5e8bb0c62075133" + ], + "type": "string" + }, + { + "pattern": "^[0-9]+$", + "title": "Burn block height", + "description": "Burn block height", + "examples": [ + "777678" + ], + "type": "string" + } + ] + }, + "in": "path", + "name": "height_or_hash", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "stacks_blocks": { + "description": "Hashes of the Stacks blocks included in the burn block", + "type": "array", + "items": { + "type": "string" + } + }, + "avg_block_time": { + "description": "Average time between blocks in seconds. Returns 0 if there is only one block in the burn block.", + "type": "integer" + }, + "total_tx_count": { + "description": "Total number of transactions in the Stacks blocks associated with this burn block", + "type": "integer" + } + }, + "required": [ + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "stacks_blocks", + "avg_block_time", + "total_tx_count" + ] + } + } + } + } + } + } + }, + "/extended/v2/burn-blocks/{height_or_hash}/blocks": { + "get": { + "operationId": "get_blocks_by_burn_block", + "summary": "Get blocks by burn block", + "tags": [ + "Burn Blocks" + ], + "description": "Retrieves a list of blocks confirmed by a specific burn block", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 30, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "anyOf": [ + { + "type": "string", + "enum": [ + "latest" + ] + }, + { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Burn block hash", + "description": "Burn block hash", + "examples": [ + "0000000000000000000452773967cdd62297137cdaf79950c5e8bb0c62075133" + ], + "type": "string" + }, + { + "pattern": "^[0-9]+$", + "title": "Burn block height", + "description": "Burn block height", + "examples": [ + "777678" + ], + "type": "string" + } + ] + }, + "in": "path", + "name": "height_or_hash", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "height": { + "description": "Height of the block", + "type": "integer" + }, + "hash": { + "description": "Hash representing the block", + "type": "string" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "index_block_hash": { + "description": "The only hash that can uniquely identify an anchored block or an unconfirmed state trie", + "type": "string" + }, + "parent_block_hash": { + "description": "Hash of the parent block", + "type": "string" + }, + "parent_index_block_hash": { + "description": "Index block hash of the parent block", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_hash": { + "description": "Hash of the anchor chain block", + "type": "string" + }, + "burn_block_height": { + "description": "Height of the anchor chain block", + "type": "integer" + }, + "miner_txid": { + "description": "Anchor chain transaction ID", + "type": "string" + }, + "tx_count": { + "description": "Number of transactions included in the block", + "type": "integer" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + } + }, + "required": [ + "canonical", + "height", + "hash", + "block_time", + "block_time_iso", + "index_block_hash", + "parent_block_hash", + "parent_index_block_hash", + "burn_block_time", + "burn_block_time_iso", + "burn_block_hash", + "burn_block_height", + "miner_txid", + "tx_count", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v2/smart-contracts/status": { + "get": { + "operationId": "get_smart_contracts_status", + "summary": "Get smart contracts status", + "tags": [ + "Smart Contracts" + ], + "description": "Retrieves the deployment status of multiple smart contracts.", + "parameters": [ + { + "schema": { + "anyOf": [ + { + "type": "array", + "items": { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$", + "title": "Smart Contract ID", + "description": "Smart Contract ID", + "examples": [ + "SP000000000000000000002Q6VF78.pox-3" + ], + "type": "string" + } + }, + { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$", + "title": "Smart Contract ID", + "description": "Smart Contract ID", + "examples": [ + "SP000000000000000000002Q6VF78.pox-3" + ], + "type": "string" + } + ] + }, + "in": "query", + "name": "contract_id", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": { + "found": { + "const": true, + "type": "boolean" + }, + "result": { + "type": "object", + "properties": { + "status": { + "description": "Smart contract deployment transaction status", + "type": "string" + }, + "tx_id": { + "description": "Deployment transaction ID", + "type": "string" + }, + "contract_id": { + "description": "Smart contract ID", + "type": "string" + }, + "block_height": { + "description": "Height of the transaction confirmation block", + "type": "integer" + } + }, + "required": [ + "status", + "tx_id", + "contract_id" + ] + } + }, + "required": [ + "found", + "result" + ] + }, + { + "type": "object", + "properties": { + "found": { + "const": false, + "type": "boolean" + } + }, + "required": [ + "found" + ] + } + ] + } + } + } + } + } + } + } + }, + "/extended/v2/mempool/fees": { + "get": { + "operationId": "get_mempool_fee_priorities", + "summary": "Get mempool transaction fee priorities", + "tags": [ + "Mempool" + ], + "description": "Returns estimated fee priorities (in micro-STX) for all transactions that are currently in the mempool. Also returns priorities separated by transaction type.", + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "all": { + "type": "object", + "properties": { + "no_priority": { + "type": "integer" + }, + "low_priority": { + "type": "integer" + }, + "medium_priority": { + "type": "integer" + }, + "high_priority": { + "type": "integer" + } + }, + "required": [ + "no_priority", + "low_priority", + "medium_priority", + "high_priority" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "no_priority": { + "type": "integer" + }, + "low_priority": { + "type": "integer" + }, + "medium_priority": { + "type": "integer" + }, + "high_priority": { + "type": "integer" + } + }, + "required": [ + "no_priority", + "low_priority", + "medium_priority", + "high_priority" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "no_priority": { + "type": "integer" + }, + "low_priority": { + "type": "integer" + }, + "medium_priority": { + "type": "integer" + }, + "high_priority": { + "type": "integer" + } + }, + "required": [ + "no_priority", + "low_priority", + "medium_priority", + "high_priority" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "no_priority": { + "type": "integer" + }, + "low_priority": { + "type": "integer" + }, + "medium_priority": { + "type": "integer" + }, + "high_priority": { + "type": "integer" + } + }, + "required": [ + "no_priority", + "low_priority", + "medium_priority", + "high_priority" + ] + } + }, + "required": [ + "all" + ] + } + } + } + } + } + } + }, + "/extended/v2/pox/cycles": { + "get": { + "operationId": "get_pox_cycles", + "summary": "Get PoX cycles", + "tags": [ + "Proof of Transfer" + ], + "description": "Retrieves a list of PoX cycles", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 60, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "block_height": { + "type": "integer" + }, + "index_block_hash": { + "type": "string" + }, + "cycle_number": { + "type": "integer" + }, + "total_weight": { + "type": "integer" + }, + "total_stacked_amount": { + "type": "string" + }, + "total_signers": { + "type": "integer" + } + }, + "required": [ + "block_height", + "index_block_hash", + "cycle_number", + "total_weight", + "total_stacked_amount", + "total_signers" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v2/pox/cycles/{cycle_number}": { + "get": { + "operationId": "get_pox_cycle", + "summary": "Get PoX cycle", + "tags": [ + "Proof of Transfer" + ], + "description": "Retrieves details for a PoX cycle", + "parameters": [ + { + "schema": { + "type": "integer" + }, + "in": "path", + "name": "cycle_number", + "required": true, + "description": "PoX cycle number" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "block_height": { + "type": "integer" + }, + "index_block_hash": { + "type": "string" + }, + "cycle_number": { + "type": "integer" + }, + "total_weight": { + "type": "integer" + }, + "total_stacked_amount": { + "type": "string" + }, + "total_signers": { + "type": "integer" + } + }, + "required": [ + "block_height", + "index_block_hash", + "cycle_number", + "total_weight", + "total_stacked_amount", + "total_signers" + ] + } + } + } + } + } + } + }, + "/extended/v2/pox/cycles/{cycle_number}/signers": { + "get": { + "operationId": "get_pox_cycle_signers", + "summary": "Get signers in PoX cycle", + "tags": [ + "Proof of Transfer" + ], + "description": "Retrieves a list of signers in a PoX cycle", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 100, + "maximum": 250, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "type": "integer" + }, + "in": "path", + "name": "cycle_number", + "required": true, + "description": "PoX cycle number" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "signing_key": { + "type": "string" + }, + "signer_address": { + "description": "The Stacks address derived from the signing_key.", + "type": "string" + }, + "weight": { + "type": "integer" + }, + "stacked_amount": { + "type": "string" + }, + "weight_percent": { + "type": "number" + }, + "stacked_amount_percent": { + "type": "number" + }, + "solo_stacker_count": { + "description": "The number of solo stackers associated with this signer.", + "type": "integer" + }, + "pooled_stacker_count": { + "description": "The number of pooled stackers associated with this signer.", + "type": "integer" + } + }, + "required": [ + "signing_key", + "signer_address", + "weight", + "stacked_amount", + "weight_percent", + "stacked_amount_percent", + "solo_stacker_count", + "pooled_stacker_count" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v2/pox/cycles/{cycle_number}/signers/{signer_key}": { + "get": { + "operationId": "get_pox_cycle_signer", + "summary": "Get signer in PoX cycle", + "tags": [ + "Proof of Transfer" + ], + "description": "Retrieves details for a signer in a PoX cycle", + "parameters": [ + { + "schema": { + "type": "integer" + }, + "in": "path", + "name": "cycle_number", + "required": true, + "description": "PoX cycle number" + }, + { + "schema": { + "type": "string" + }, + "example": "0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d", + "in": "path", + "name": "signer_key", + "required": true, + "description": "Signer key" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "signing_key": { + "type": "string" + }, + "signer_address": { + "description": "The Stacks address derived from the signing_key.", + "type": "string" + }, + "weight": { + "type": "integer" + }, + "stacked_amount": { + "type": "string" + }, + "weight_percent": { + "type": "number" + }, + "stacked_amount_percent": { + "type": "number" + }, + "solo_stacker_count": { + "description": "The number of solo stackers associated with this signer.", + "type": "integer" + }, + "pooled_stacker_count": { + "description": "The number of pooled stackers associated with this signer.", + "type": "integer" + } + }, + "required": [ + "signing_key", + "signer_address", + "weight", + "stacked_amount", + "weight_percent", + "stacked_amount_percent", + "solo_stacker_count", + "pooled_stacker_count" + ] + } + } + } + } + } + } + }, + "/extended/v2/pox/cycles/{cycle_number}/signers/{signer_key}/stackers": { + "get": { + "operationId": "get_pox_cycle_signer_stackers", + "summary": "Get stackers for signer in PoX cycle", + "tags": [ + "Proof of Transfer" + ], + "description": "Retrieves a list of stackers for a signer in a PoX cycle", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 100, + "maximum": 200, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "type": "integer" + }, + "in": "path", + "name": "cycle_number", + "required": true, + "description": "PoX cycle number" + }, + { + "schema": { + "type": "string" + }, + "example": "0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d", + "in": "path", + "name": "signer_key", + "required": true, + "description": "Signer key" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "stacker_address": { + "type": "string" + }, + "stacked_amount": { + "type": "string" + }, + "pox_address": { + "type": "string" + }, + "stacker_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "solo" + ] + }, + { + "type": "string", + "enum": [ + "pooled" + ] + } + ] + } + }, + "required": [ + "stacker_address", + "stacked_amount", + "pox_address", + "stacker_type" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v2/addresses/{address}/transactions": { + "get": { + "operationId": "get_address_transactions", + "summary": "Get address transactions", + "tags": [ + "Transactions" + ], + "description": "Retrieves a paginated list of confirmed transactions sent or received by a STX address or Smart Contract ID, alongside the total amount of STX sent or received and the number of STX, FT and NFT transfers contained within each transaction.\n \n More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types).", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "anyOf": [ + { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}", + "title": "STX Address", + "description": "STX Address", + "examples": [ + "SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP" + ], + "type": "string" + }, + { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$", + "title": "Smart Contract ID", + "description": "Smart Contract ID", + "examples": [ + "SP000000000000000000002Q6VF78.pox-3" + ], + "type": "string" + } + ] + }, + "in": "path", + "name": "address", + "required": true + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "AddressTransaction", + "description": "Address transaction with STX, FT and NFT transfer summaries", + "type": "object", + "properties": { + "tx": { + "anyOf": [ + { + "title": "TokenTransferTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "token_transfer" + ] + }, + "token_transfer": { + "type": "object", + "properties": { + "recipient_address": { + "type": "string" + }, + "amount": { + "description": "Transfer amount as Integer string (64-bit unsigned integer)", + "type": "string" + }, + "memo": { + "description": "Hex encoded arbitrary message, up to 34 bytes length (should try decoding to an ASCII string)", + "type": "string" + } + }, + "required": [ + "recipient_address", + "amount", + "memo" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "token_transfer" + ] + }, + { + "title": "SmartContractTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + "smart_contract": { + "type": "object", + "properties": { + "clarity_version": { + "anyOf": [ + { + "description": "The Clarity version of the contract, only specified for versioned contract transactions, otherwise null", + "type": "number" + }, + { + "type": "null" + } + ] + }, + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "source_code": { + "description": "Clarity code of the smart contract being deployed", + "type": "string" + } + }, + "required": [ + "clarity_version", + "contract_id", + "source_code" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "smart_contract" + ] + }, + { + "title": "ContractCallTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "contract_call" + ] + }, + "contract_call": { + "type": "object", + "properties": { + "contract_id": { + "description": "Contract identifier formatted as `.`", + "type": "string" + }, + "function_name": { + "description": "Name of the Clarity function to be invoked", + "type": "string" + }, + "function_signature": { + "description": "Function definition, including function name and type as well as parameter names and types", + "type": "string" + }, + "function_args": { + "type": "array", + "items": { + "additionalProperties": false, + "description": "List of arguments used to invoke the function", + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "hex", + "repr", + "name", + "type" + ] + } + } + }, + "required": [ + "contract_id", + "function_name", + "function_signature" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "contract_call" + ] + }, + { + "title": "PoisonMicroblockTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + "poison_microblock": { + "type": "object", + "properties": { + "microblock_header_1": { + "description": "Hex encoded microblock header", + "type": "string" + }, + "microblock_header_2": { + "description": "Hex encoded microblock header", + "type": "string" + } + }, + "required": [ + "microblock_header_1", + "microblock_header_2" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "poison_microblock" + ] + }, + { + "title": "CoinbaseTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "coinbase" + ] + }, + "coinbase_payload": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hex encoded 32-byte scratch space for block leader's use" + }, + "alt_recipient": { + "anyOf": [ + { + "description": "A principal that will receive the miner rewards for this coinbase transaction. Can be either a standard principal or contract principal. Only specified for `coinbase-to-alt-recipient` transaction types, otherwise null.", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "vrf_proof": { + "anyOf": [ + { + "description": "Hex encoded 80-byte VRF proof", + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "data" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "coinbase_payload" + ] + }, + { + "title": "TenureChangeTransaction", + "type": "object", + "properties": { + "tx_id": { + "description": "Transaction ID", + "type": "string" + }, + "nonce": { + "description": "Used for ordering the transactions originating from and paying from an account. The nonce ensures that a transaction is processed at most once. The nonce counts the number of times an account's owner(s) have authorized a transaction. The first transaction from an account will have a nonce value equal to 0, the second will have a nonce value equal to 1, and so on.", + "type": "integer" + }, + "fee_rate": { + "description": "Transaction fee as Integer string (64-bit unsigned integer).", + "type": "string" + }, + "sender_address": { + "description": "Address of the transaction initiator", + "type": "string" + }, + "sponsor_nonce": { + "type": "integer" + }, + "sponsored": { + "description": "Denotes whether the originating account is the same as the paying account", + "type": "boolean" + }, + "sponsor_address": { + "type": "string" + }, + "post_condition_mode": { + "anyOf": [ + { + "type": "string", + "enum": [ + "allow" + ] + }, + { + "type": "string", + "enum": [ + "deny" + ] + } + ] + }, + "post_conditions": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "stx" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_greater_than_or_equal_to" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than" + ] + }, + { + "type": "string", + "enum": [ + "sent_less_than_or_equal_to" + ] + } + ] + }, + "amount": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "fungible" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "amount", + "type", + "asset" + ] + }, + { + "type": "object", + "properties": { + "principal": { + "anyOf": [ + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_origin" + ] + } + }, + "required": [ + "type_id" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_standard" + ] + }, + "address": { + "type": "string" + } + }, + "required": [ + "type_id", + "address" + ] + }, + { + "type": "object", + "properties": { + "type_id": { + "type": "string", + "enum": [ + "principal_contract" + ] + }, + "address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "type_id", + "address", + "contract_name" + ] + } + ] + }, + "condition_code": { + "anyOf": [ + { + "type": "string", + "enum": [ + "sent" + ] + }, + { + "type": "string", + "enum": [ + "not_sent" + ] + } + ] + }, + "type": { + "type": "string", + "enum": [ + "non_fungible" + ] + }, + "asset_value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "asset": { + "type": "object", + "properties": { + "asset_name": { + "type": "string" + }, + "contract_address": { + "type": "string" + }, + "contract_name": { + "type": "string" + } + }, + "required": [ + "asset_name", + "contract_address", + "contract_name" + ] + } + }, + "required": [ + "principal", + "condition_code", + "type", + "asset_value", + "asset" + ] + } + ] + } + }, + "anchor_mode": { + "description": "`on_chain_only`: the transaction MUST be included in an anchored block, `off_chain_only`: the transaction MUST be included in a microblock, `any`: the leader can choose where to include the transaction.", + "anyOf": [ + { + "type": "string", + "enum": [ + "on_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "off_chain_only" + ] + }, + { + "type": "string", + "enum": [ + "any" + ] + } + ] + }, + "block_hash": { + "description": "Hash of the blocked this transactions was associated with", + "type": "string" + }, + "block_height": { + "description": "Height of the block this transactions was associated with", + "type": "integer" + }, + "block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "number" + }, + "block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block was mined.", + "type": "string" + }, + "burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this block was mined.", + "type": "integer" + }, + "burn_block_height": { + "description": "Height of the anchor burn block.", + "type": "integer" + }, + "burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this block was mined.", + "type": "string" + }, + "parent_burn_block_time": { + "description": "Unix timestamp (in seconds) indicating when this parent block was mined", + "type": "integer" + }, + "parent_burn_block_time_iso": { + "description": "An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when this parent block was mined.", + "type": "string" + }, + "canonical": { + "description": "Set to `true` if block corresponds to the canonical chain tip", + "type": "boolean" + }, + "tx_index": { + "description": "Index of the transaction, indicating the order. Starts at `0` and increases with each transaction", + "type": "integer" + }, + "tx_status": { + "description": "Status of the transaction", + "anyOf": [ + { + "type": "string", + "enum": [ + "success" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_response" + ] + }, + { + "type": "string", + "enum": [ + "abort_by_post_condition" + ] + } + ] + }, + "tx_result": { + "description": "Result of the transaction. For contract calls, this will show the value returned by the call. For other transaction types, this will return a boolean indicating the success of the transaction.", + "additionalProperties": false, + "type": "object", + "properties": { + "hex": { + "description": "Hex string representing the value fo the transaction result", + "type": "string" + }, + "repr": { + "description": "Readable string of the transaction result", + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "event_count": { + "description": "Number of transaction events", + "type": "integer" + }, + "parent_block_hash": { + "description": "Hash of the previous block.", + "type": "string" + }, + "is_unanchored": { + "description": "True if the transaction is included in a microblock that has not been confirmed by an anchor block.", + "type": "boolean" + }, + "microblock_hash": { + "description": "The microblock hash that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be an empty string.", + "type": "string" + }, + "microblock_sequence": { + "description": "The microblock sequence number that this transaction was streamed in. If the transaction was batched in an anchor block (not included within a microblock) then this value will be 2147483647 (0x7fffffff, the max int32 value), this value preserves logical transaction ordering on (block_height, microblock_sequence, tx_index).", + "type": "integer" + }, + "microblock_canonical": { + "description": "Set to `true` if microblock is anchored in the canonical chain tip, `false` if the transaction was orphaned in a micro-fork.", + "type": "boolean" + }, + "execution_cost_read_count": { + "description": "Execution cost read count.", + "type": "integer" + }, + "execution_cost_read_length": { + "description": "Execution cost read length.", + "type": "integer" + }, + "execution_cost_runtime": { + "description": "Execution cost runtime.", + "type": "integer" + }, + "execution_cost_write_count": { + "description": "Execution cost write count.", + "type": "integer" + }, + "execution_cost_write_length": { + "description": "Execution cost write length.", + "type": "integer" + }, + "events": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "SmartContractLogTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "smart_contract_log" + ] + }, + "tx_id": { + "type": "string" + }, + "contract_log": { + "type": "object", + "properties": { + "contract_id": { + "type": "string" + }, + "topic": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "contract_id", + "topic", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "contract_log" + ] + } + ] + }, + { + "title": "StxLockTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_lock" + ] + }, + "tx_id": { + "type": "string" + }, + "stx_lock_event": { + "type": "object", + "properties": { + "locked_amount": { + "type": "string" + }, + "unlock_height": { + "type": "integer" + }, + "locked_address": { + "type": "string" + } + }, + "required": [ + "locked_amount", + "unlock_height", + "locked_address" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "stx_lock_event" + ] + } + ] + }, + { + "title": "StxAssetTransactionEvent", + "description": "Only present in `smart_contract` and `contract_call` tx types.", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "memo": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "FungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "amount" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + }, + { + "title": "NonFungibleTokenAssetTransactionEvent", + "type": "object", + "allOf": [ + { + "title": "AbstractTransactionEvent", + "type": "object", + "properties": { + "event_index": { + "type": "integer" + } + }, + "required": [ + "event_index" + ] + }, + { + "type": "object", + "properties": { + "event_type": { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] + }, + "tx_id": { + "type": "string" + }, + "asset": { + "type": "object", + "properties": { + "asset_event_type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_id": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "recipient": { + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + } + }, + "required": [ + "asset_event_type", + "asset_id", + "sender", + "recipient", + "value" + ] + } + }, + "required": [ + "event_type", + "tx_id", + "asset" + ] + } + ] + } + ] + } + }, + "tx_type": { + "type": "string", + "enum": [ + "tenure_change" + ] + }, + "tenure_change_payload": { + "type": "object", + "properties": { + "tenure_consensus_hash": { + "description": "Consensus hash of this tenure. Corresponds to the sortition in which the miner of this block was chosen.", + "type": "string" + }, + "prev_tenure_consensus_hash": { + "description": "Consensus hash of the previous tenure. Corresponds to the sortition of the previous winning block-commit.", + "type": "string" + }, + "burn_view_consensus_hash": { + "description": "Current consensus hash on the underlying burnchain. Corresponds to the last-seen sortition.", + "type": "string" + }, + "previous_tenure_end": { + "description": "(Hex string) Stacks Block hash", + "type": "string" + }, + "previous_tenure_blocks": { + "description": "The number of blocks produced in the previous tenure.", + "type": "integer" + }, + "cause": { + "description": "Cause of change in mining tenure. Depending on cause, tenure can be ended or extended.", + "anyOf": [ + { + "type": "string", + "enum": [ + "block_found" + ] + }, + { + "type": "string", + "enum": [ + "extended" + ] + } + ] + }, + "pubkey_hash": { + "description": "(Hex string) The ECDSA public key hash of the current tenure.", + "type": "string" + } + }, + "required": [ + "tenure_consensus_hash", + "prev_tenure_consensus_hash", + "burn_view_consensus_hash", + "previous_tenure_end", + "previous_tenure_blocks", + "cause", + "pubkey_hash" + ] + } + }, + "required": [ + "tx_id", + "nonce", + "fee_rate", + "sender_address", + "sponsored", + "post_condition_mode", + "post_conditions", + "anchor_mode", + "block_hash", + "block_height", + "block_time", + "block_time_iso", + "burn_block_time", + "burn_block_height", + "burn_block_time_iso", + "parent_burn_block_time", + "parent_burn_block_time_iso", + "canonical", + "tx_index", + "tx_status", + "tx_result", + "event_count", + "parent_block_hash", + "is_unanchored", + "microblock_hash", + "microblock_sequence", + "microblock_canonical", + "execution_cost_read_count", + "execution_cost_read_length", + "execution_cost_runtime", + "execution_cost_write_count", + "execution_cost_write_length", + "events", + "tx_type", + "tenure_change_payload" + ] + } + ] + }, + "stx_sent": { + "description": "Total sent from the given address, including the tx fee, in micro-STX as an integer string.", + "type": "string" + }, + "stx_received": { + "description": "Total received by the given address in micro-STX as an integer string.", + "type": "string" + }, + "events": { + "type": "object", + "properties": { + "stx": { + "type": "object", + "properties": { + "transfer": { + "type": "integer" + }, + "mint": { + "type": "integer" + }, + "burn": { + "type": "integer" + } + }, + "required": [ + "transfer", + "mint", + "burn" + ] + }, + "ft": { + "type": "object", + "properties": { + "transfer": { + "type": "integer" + }, + "mint": { + "type": "integer" + }, + "burn": { + "type": "integer" + } + }, + "required": [ + "transfer", + "mint", + "burn" + ] + }, + "nft": { + "type": "object", + "properties": { + "transfer": { + "type": "integer" + }, + "mint": { + "type": "integer" + }, + "burn": { + "type": "integer" + } + }, + "required": [ + "transfer", + "mint", + "burn" + ] + } + }, + "required": [ + "stx", + "ft", + "nft" + ] + } + }, + "required": [ + "tx", + "stx_sent", + "stx_received", + "events" + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/extended/v2/addresses/{address}/transactions/{tx_id}/events": { + "get": { + "operationId": "get_address_transaction_events", + "summary": "Get events for an address transaction", + "tags": [ + "Transactions" + ], + "description": "Retrieves a paginated list of all STX, FT and NFT events concerning a STX address or Smart Contract ID within a specific transaction.", + "parameters": [ + { + "schema": { + "minimum": 0, + "default": 20, + "maximum": 50, + "title": "Limit", + "type": "integer" + }, + "in": "query", + "name": "limit", + "required": false, + "description": "Results per page" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "title": "Offset", + "type": "integer" + }, + "in": "query", + "name": "offset", + "required": false, + "description": "Result offset" + }, + { + "schema": { + "anyOf": [ + { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}", + "title": "STX Address", + "description": "STX Address", + "examples": [ + "SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP" + ], + "type": "string" + }, + { + "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$", + "title": "Smart Contract ID", + "description": "Smart Contract ID", + "examples": [ + "SP000000000000000000002Q6VF78.pox-3" + ], + "type": "string" + } + ] + }, + "in": "path", + "name": "address", + "required": true + }, + { + "schema": { + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Transaction ID", + "type": "string" + }, + "example": "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6", + "in": "path", + "name": "tx_id", + "required": true, + "description": "Transaction ID" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "example": 20 + }, + "offset": { + "type": "integer", + "example": 0 + }, + "total": { + "type": "integer", + "example": 1 + }, + "results": { + "type": "array", + "items": { + "title": "AddressTransactionEvent", + "description": "Address Transaction Event", + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "stx" + ] + }, + "event_index": { + "type": "integer" + }, + "data": { + "type": "object", + "properties": { + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "amount": { + "description": "Amount transferred in micro-STX as an integer string.", + "type": "string" + }, + "sender": { + "description": "Principal that sent STX. This is unspecified if the STX were minted.", + "type": "string" + }, + "recipient": { + "description": "Principal that received STX. This is unspecified if the STX were burned.", + "type": "string" + } + }, + "required": [ + "type", + "amount" + ] + } + }, + "required": [ + "type", + "event_index", + "data" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ft" + ] + }, + "event_index": { + "type": "integer" + }, + "data": { + "type": "object", + "properties": { + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "amount": { + "description": "Amount transferred as an integer string. This balance does not factor in possible SIP-010 decimals.", + "type": "string" + }, + "asset_identifier": { + "description": "Fungible Token asset identifier.", + "type": "string" + }, + "sender": { + "description": "Principal that sent the asset.", + "type": "string" + }, + "recipient": { + "description": "Principal that received the asset.", + "type": "string" + } + }, + "required": [ + "type", + "amount", + "asset_identifier" + ] + } + }, + "required": [ + "type", + "event_index", + "data" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "nft" + ] + }, + "event_index": { + "type": "integer" + }, + "data": { + "type": "object", + "properties": { + "type": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transfer" + ] + }, + { + "type": "string", + "enum": [ + "mint" + ] + }, + { + "type": "string", + "enum": [ + "burn" + ] + } + ] + }, + "asset_identifier": { + "description": "Non Fungible Token asset identifier.", + "type": "string" + }, + "value": { + "type": "object", + "properties": { + "hex": { + "type": "string" + }, + "repr": { + "type": "string" + } + }, + "required": [ + "hex", + "repr" + ] + }, + "sender": { + "description": "Principal that sent the asset.", + "type": "string" + }, + "recipient": { + "description": "Principal that received the asset.", + "type": "string" + } + }, + "required": [ + "type", + "asset_identifier", + "value" + ] + } + }, + "required": [ + "type", + "event_index", + "data" + ] + } + ] + } + } + }, + "required": [ + "limit", + "offset", + "total", + "results" + ] + } + } + } + } + } + } + }, + "/v1/names/{name}/zonefile/{zoneFileHash}": { + "get": { + "operationId": "get_historical_zone_file", + "summary": "Get Historical Zone File", + "tags": [ + "Names" + ], + "description": "Retrieves the historical zonefile specified by the username and zone hash.", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "example": "muneeb.id", + "in": "path", + "name": "name", + "required": true, + "description": "fully-qualified name" + }, + { + "schema": { + "type": "string" + }, + "example": "b100a68235244b012854a95f9114695679002af9", + "in": "path", + "name": "zoneFileHash", + "required": true, + "description": "zone file hash" + } + ], + "responses": { + "200": { + "description": "Fetches the historical zonefile specified by the username and zone hash.", + "content": { + "application/json": { + "schema": { + "title": "BnsFetchHistoricalZoneFileResponse", + "description": "Fetches the historical zonefile specified by the username and zone hash.", + "type": "object", + "properties": { + "zonefile": { + "type": "string" + } + }, + "required": [ + "zonefile" + ] + } + } + } + }, + "4XX": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "title": "BnsError", + "description": "Error", + "type": "object", + "properties": { + "error": { + "type": "string" + } + }, + "required": [ + "error" + ] + } + } + } + } + } + } + }, + "/v1/names/{name}/subdomains": { + "get": { + "operationId": "fetch_subdomains_list_for_name", + "summary": "Get Name Subdomains", + "tags": [ + "Names" + ], + "description": "Retrieves the list of subdomains for a specific name", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "example": "id.blockstack", + "in": "path", + "name": "name", + "required": true, + "description": "fully-qualified name" + } + ], + "responses": { + "200": { + "description": "Fetch a list of subdomains in a name.", + "content": { + "application/json": { + "schema": { + "title": "GetAllSubdomainsInName", + "description": "Fetch a list of subdomains in a name.", + "type": "array", + "items": { + "type": "string" + } + }, + "example": [ + "address_test.id.blockstack", + "previous_subdomain.id.blockstack", + "subdomain.id.blockstack", + "zonefile_test.id.blockstack", + "zone_test.id.blockstack" + ] + } + } + } + } + } + }, + "/v1/names/{name}/zonefile": { + "get": { + "operationId": "fetch_zone_file", + "summary": "Get Zone File", + "tags": [ + "Names" + ], + "description": "Retrieves a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "example": "bar.test", + "in": "path", + "name": "name", + "required": true, + "description": "fully-qualified name" + } + ], + "responses": { + "200": { + "description": "Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.", + "content": { + "application/json": { + "schema": { + "title": "BnsFetchFileZoneResponse", + "description": "Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.", + "type": "object", + "properties": { + "zonefile": { + "type": "string", + "example": "$ORIGIN bar.test\n$TTL 3600\n_https._tcp URI 10 1 \"https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json\"\n" + } + }, + "required": [ + "zonefile" + ] + } + } + } + }, + "4XX": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "title": "BnsError", + "description": "Error", + "type": "object", + "properties": { + "error": { + "type": "string", + "example": "Invalid name or subdomain" + } + }, + "required": [ + "error" + ] + } + } + } + } + } + } + }, + "/v1/names/": { + "get": { + "operationId": "get_all_names", + "summary": "Get All Names", + "tags": [ + "Names" + ], + "description": "Retrieves a list of all names known to the node.", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "minimum": 0, + "default": 0, + "type": "integer" + }, + "in": "query", + "name": "page", + "required": false, + "description": "names are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter." + } + ], + "responses": { + "200": { + "description": "Fetch a list of all names known to the node.", + "content": { + "application/json": { + "schema": { + "title": "BnsGetAllNamesResponse", + "description": "Fetch a list of all names known to the node.", + "type": "array", + "items": { + "type": "string" + } + }, + "examples": { + "aldenquimby.id": { + "value": "aldenquimby.id" + }, + "aldeoryn.id": { + "value": "aldeoryn.id" + }, + "alderete.id": { + "value": "alderete.id" + }, + "aldert.id": { + "value": "aldert.id" + }, + "aldi.id": { + "value": "aldi.id" + }, + "aldighieri.id": { + "value": "aldighieri.id" + } + } + } + } + }, + "4XX": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "title": "BnsError", + "description": "Error", + "type": "object", + "properties": { + "error": { + "type": "string" + } + }, + "required": [ + "error" + ] + } + } + } + } + } + } + }, + "/v1/names/{name}": { + "get": { + "operationId": "get_name_info", + "summary": "Get Name Details", + "tags": [ + "Names" + ], + "description": "Retrieves details of a given name including the `address`, `status` and last transaction id - `last_txid`.", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "example": "muneeb.id", + "in": "path", + "name": "name", + "required": true, + "description": "fully-qualified name" + } + ], + "responses": { + "200": { + "description": "Get name details", + "content": { + "application/json": { + "schema": { + "title": "BnsGetNameInfoResponse", + "description": "Get name details", + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "blockchain": { + "type": "string", + "example": "stacks" + }, + "expire_block": { + "minimum": 0, + "type": "integer" + }, + "grace_period": { + "minimum": 0, + "type": "integer" + }, + "last_txid": { + "type": "string" + }, + "resolver": { + "type": "string" + }, + "status": { + "type": "string" + }, + "zonefile": { + "type": "string" + }, + "zonefile_hash": { + "type": "string" + } + }, + "required": [ + "address", + "blockchain", + "last_txid", + "status", + "zonefile_hash" + ] + }, + "example": { + "address": "1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs", + "blockchain": "stacks", + "expire_block": 599266, + "grace_period": false, + "last_txid": "1edfa419f7b83f33e00830bc9409210da6c6d1db60f99eda10c835aa339cad6b", + "renewal_deadline": 604266, + "resolver": null, + "status": "registered", + "zonefile": "$ORIGIN muneeb.id\n$TTL 3600\n_http._tcp IN URI 10 1 \"https://gaia.blockstack.org/hub/1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs/0/profile.json\"\n", + "zonefile_hash": "37aecf837c6ae9bdc9dbd98a268f263dacd00361" + } + } + } + } + } + } + }, + "/v1/namespaces/": { + "get": { + "operationId": "get_all_namespaces", + "summary": "Get All Namespaces", + "tags": [ + "Names" + ], + "description": "Retrieves a list of all namespaces known to the node.", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + } + ], + "responses": { + "200": { + "description": "Default Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "namespaces": { + "title": "BnsGetAllNamespacesResponse", + "description": "Fetch a list of all namespaces known to the node.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "namespaces" + ] + } + } + } + } + } + } + }, + "/v1/namespaces/{tld}/names": { + "get": { + "operationId": "get_namespace_names", + "summary": "Get Namespace Names", + "tags": [ + "Names" + ], + "description": "Retrieves a list of names within a given namespace.", + "parameters": [ + { + "schema": { + "type": "number" + }, + "example": 22, + "in": "query", + "name": "page", + "required": false, + "description": "namespace values are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter." + }, + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "example": "id", + "in": "path", + "name": "tld", + "required": true, + "description": "the namespace to fetch names from." + } + ], + "responses": { + "200": { + "description": "Fetch a list of names from the namespace.", + "content": { + "application/json": { + "schema": { + "title": "BnsGetAllNamespacesNamesResponse", + "description": "Fetch a list of names from the namespace.", + "type": "array", + "items": { + "type": "string" + } + }, + "example": [ + "aldenquimby.id", + "aldeoryn.id", + "alderete.id", + "aldert.id", + "aldi.id", + "aldighieri.id" + ] + } + } + } + } + } + }, + "/v1/addresses/{blockchain}/{address}": { + "get": { + "operationId": "get_names_owned_by_address", + "summary": "Get Names Owned by Address", + "tags": [ + "Names" + ], + "description": "Retrieves a list of names owned by the address provided.", + "parameters": [ + { + "schema": { + "default": false, + "type": "boolean" + }, + "example": true, + "in": "query", + "name": "unanchored", + "required": false, + "description": "Include data from unanchored (i.e. unconfirmed) microblocks" + }, + { + "schema": { + "type": "string" + }, + "example": "stacks", + "in": "path", + "name": "blockchain", + "required": true, + "description": "the layer-1 blockchain for the address" + }, + { + "schema": { + "type": "string" + }, + "example": "SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7", + "in": "path", + "name": "address", + "required": true, + "description": "the address to lookup" + } + ], + "responses": { + "200": { + "description": "Retrieves a list of names owned by the address provided.", + "content": { + "application/json": { + "schema": { + "title": "BnsNamesOwnByAddressResponse", + "description": "Retrieves a list of names owned by the address provided.", + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string", + "example": "muneeb.id" + } + } + }, + "required": [ + "names" + ] + } + } + } + } + } + } + }, + "/v2/prices/namespaces/{tld}": { + "get": { + "operationId": "get_namespace_price", + "summary": "Get Namespace Price", + "tags": [ + "Names" + ], + "description": "Retrieves the price of a namespace. The `amount` given will be in the smallest possible units of the currency.", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "id", + "in": "path", + "name": "tld", + "required": true, + "description": "the namespace to fetch price for" + } + ], + "responses": { + "200": { + "description": "Fetch price for namespace.", + "content": { + "application/json": { + "schema": { + "title": "BnsGetNamespacePriceResponse", + "description": "Fetch price for namespace.", + "type": "object", + "properties": { + "units": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "units", + "amount" + ] + } + } + } + }, + "400": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "title": "BnsError", + "description": "Error", + "type": "object", + "properties": { + "error": { + "type": "string" + } + }, + "required": [ + "error" + ] + } + } + } + } + } + } + }, + "/v2/prices/names/{name}": { + "get": { + "operationId": "get_name_price", + "summary": "Get Name Price", + "tags": [ + "Names" + ], + "description": "Retrieves the price of a name. The `amount` given will be in the smallest possible units of the currency.", + "parameters": [ + { + "schema": { + "type": "string" + }, + "example": "muneeb.id", + "in": "path", + "name": "name", + "required": true, + "description": "the name to query price information for" + } + ], + "responses": { + "200": { + "description": "Fetch price for name.", + "content": { + "application/json": { + "schema": { + "title": "BnsGetNamePriceResponse", + "description": "Fetch price for name.", + "type": "object", + "properties": { + "units": { + "type": "string" + }, + "amount": { + "type": "string" + } + }, + "required": [ + "units", + "amount" + ] + } + } + } + }, + "400": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "title": "BnsError", + "description": "Error", + "type": "object", + "properties": { + "error": { + "type": "string" + } + }, + "required": [ + "error" + ] + } + } + } + } + } + } + } + }, + "servers": [ + { + "url": "https://api.hiro.so/", + "description": "mainnet" + } + ], + "tags": [ + { + "name": "Accounts", + "description": "Read-only endpoints to obtain Stacks account details", + "externalDocs": { + "description": "Stacks Documentation - Accounts", + "url": "https://docs.stacks.co/understand-stacks/accounts" + } + }, + { + "name": "Blocks", + "description": "Read-only endpoints to obtain Stacks block details" + }, + { + "name": "Burn Blocks", + "description": "Read-only endpoints to obtain burn block details" + }, + { + "name": "Faucets", + "description": "Endpoints to request STX or BTC tokens (not possible on Mainnet)" + }, + { + "name": "Fees", + "description": "Read-only endpoints to obtain fee details" + }, + { + "name": "Info", + "description": "Read-only endpoints to obtain network, Proof-of-Transfer, Stacking, STX token, and node information" + }, + { + "name": "Microblocks", + "description": "Read-only endpoints to obtain microblocks details", + "externalDocs": { + "description": "Stacks Documentation - Microblocks", + "url": "https://docs.stacks.co/understand-stacks/microblocks" + } + }, + { + "name": "Names", + "description": "Read-only endpoints realted to the Blockchain Naming System on Stacks", + "externalDocs": { + "description": "Stacks Documentation - Blockchain Naming System", + "url": "https://docs.stacks.co/build-apps/references/bns" + } + }, + { + "name": "Non-Fungible Tokens", + "description": "Read-only endpoints to obtain non-fungible token details", + "externalDocs": { + "description": "Stacks Documentation - Tokens", + "url": "https://docs.stacks.co/write-smart-contracts/tokens" + } + }, + { + "name": "Rosetta", + "description": "Endpoints to support the Rosetta API open blockchain standard", + "externalDocs": { + "description": "Hiro Documentation - Rosetta Support", + "url": "https://docs.hiro.so/get-started/stacks-blockchain-api#rosetta-support" + } + }, + { + "name": "Search", + "description": "Read-only endpoints to search for accounts, blocks, smart contracts, and transactions" + }, + { + "name": "Smart Contracts", + "description": "Read-only endpoints to obtain Clarity smart contract details", + "externalDocs": { + "description": "Stacks Documentation - Clarity Smart Contracts", + "url": "https://docs.stacks.co/write-smart-contracts/overview" + } + }, + { + "name": "Stacking Rewards", + "description": "Read-only endpoints to obtain Stacking reward details", + "externalDocs": { + "description": "Stacks Documentation - Stacking", + "url": "https://docs.stacks.co/understand-stacks/stacking" + } + }, + { + "name": "Transactions", + "description": "Endpoints to obtain transaction details and to broadcast transactions to the network", + "externalDocs": { + "description": "Hiro Documentation - Transactions", + "url": "https://docs.hiro.so/get-started/transactions" + } + }, + { + "name": "Mempool", + "description": "Endpoints to obtain Mempool information" + }, + { + "name": "Proof of Transfer", + "description": "Endpoints to get information about the Proof of Transfer consensus mechanism" + } + ], + "externalDocs": { + "url": "https://github.com/hirosystems/stacks-blockchain-api", + "description": "Source Repository" + } +} \ No newline at end of file diff --git a/docs/openapi.yaml b/docs/openapi.yaml index f5bde8be2..a7623a7b9 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1,3943 +1,89767 @@ -openapi: 3.0.2 -servers: - - url: https://api.mainnet.hiro.so/ - description: Mainnet - - url: https://api.nakamoto.testnet.hiro.so/ - description: Nakamoto Testnet - - url: https://api.testnet.hiro.so/ - description: Testnet - - url: http://localhost:3999/ - description: Local +openapi: 3.0.3 info: title: Stacks Blockchain API - version: 'STACKS_API_VERSION' - description: | - Welcome to the API reference overview for the [Stacks Blockchain API](https://docs.hiro.so/stacks-blockchain-api). - - [Download Postman collection](https://hirosystems.github.io/stacks-blockchain-api/collection.json) -tags: - - name: Accounts - description: Read-only endpoints to obtain Stacks account details - externalDocs: - description: Stacks Documentation - Accounts - url: https://docs.stacks.co/understand-stacks/accounts - - name: Blocks - description: Read-only endpoints to obtain Stacks block details - - name: Burn Blocks - description: Read-only endpoints to obtain burn block details - - name: Faucets - description: Endpoints to request STX or BTC tokens (not possible on Mainnet) - - name: Fees - description: Read-only endpoints to obtain fee details - - name: Info - description: Read-only endpoints to obtain network, Proof-of-Transfer, Stacking, STX token, and node information - - name: Microblocks - description: Read-only endpoints to obtain microblocks details - externalDocs: - description: Stacks Documentation - Microblocks - url: https://docs.stacks.co/understand-stacks/microblocks - - name: Names - description: Read-only endpoints realted to the Blockchain Naming System on Stacks - externalDocs: - description: Stacks Documentation - Blockchain Naming System - url: https://docs.stacks.co/build-apps/references/bns - - name: Non-Fungible Tokens - description: Read-only endpoints to obtain non-fungible token details - externalDocs: - description: Stacks Documentation - Tokens - url: https://docs.stacks.co/write-smart-contracts/tokens - - name: Rosetta - description: Endpoints to support the Rosetta API open blockchain standard - externalDocs: - description: Hiro Documentation - Rosetta Support - url: https://docs.hiro.so/get-started/stacks-blockchain-api#rosetta-support - - name: Search - description: Read-only endpoints to search for accounts, blocks, smart contracts, and transactions - - name: Smart Contracts - description: Read-only endpoints to obtain Clarity smart contract details - externalDocs: - description: Stacks Documentation - Clarity Smart Contracts - url: https://docs.stacks.co/write-smart-contracts/overview - - name: Stacking Rewards - description: Read-only endpoints to obtain Stacking reward details - externalDocs: - description: Stacks Documentation - Stacking - url: https://docs.stacks.co/understand-stacks/stacking - - name: Transactions - description: Endpoints to obtain transaction details and to broadcast transactions to the network - externalDocs: - description: Hiro Documentation - Transactions - url: https://docs.hiro.so/get-started/transactions - - name: Mempool - description: Endpoints to obtain Mempool information - - name: Proof of Transfer - description: Endpoints to get information about the Proof of Transfer consensus mechanism + description: >- + Welcome to the API reference overview for the [Stacks Blockchain + API](https://docs.hiro.so/stacks-blockchain-api). + [Download Postman collection](https://hirosystems.github.io/stacks-blockchain-api/collection.json) + version: v7.11.0-beta.7 +components: + schemas: {} paths: - /extended/v1/faucets/stx: - parameters: - - name: address - in: query - description: A valid testnet STX address - required: true - schema: - type: string - example: ST3M7N9Q9HDRM7RVP1Q26P0EE69358PZZAZD7KMXQ - - name: stacking - in: query - description: Request the amount of STX tokens needed for individual address stacking - required: false - schema: - type: boolean - default: false - post: - summary: Get STX testnet tokens - description: | - Add 500 STX tokens to the specified testnet address. Testnet STX addresses begin with `ST`. If the `stacking` - parameter is set to `true`, the faucet will add the required number of tokens for individual stacking to the - specified testnet address. - - The endpoint returns the transaction ID, which you can use to view the transaction in the - [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has - been included in an anchor block. - - A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing - failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat). - - **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. - tags: - - Faucets - operationId: run_faucet_stx - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/faucet/run-faucet.schema.json - example: - $ref: ./api/faucet/run-faucet.example.json - 500: - description: Faucet call failed - /extended/v1/faucets/btc: - parameters: - - name: address - in: query - description: A valid testnet BTC address - required: true - schema: - type: string - example: "2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts" - post: - summary: Add testnet BTC tokens to address - description: | - Add 1 BTC token to the specified testnet BTC address. - - The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block - explorer. The tokens are delivered once the transaction has been included in a block. - - **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. + /extended: + get: + operationId: get_status + summary: API status tags: - - Faucets - operationId: run_faucet_btc - requestBody: - content: - application/json: - schema: - type: object - properties: - address: - description: BTC testnet address - type: string - example: - address: 2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts + - Info + description: Retrieves the running status of the Stacks Blockchain API, + including the server version and current chain tip information. responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/faucet/run-faucet.schema.json - example: - $ref: ./api/faucet/run-faucet.example.json - 403: - description: BTC Faucet not fully configured + "200": + description: Default Response content: application/json: schema: + title: Api Status Response type: object properties: - error: + server_version: + description: the server version that is currently running type: string - success: - type: boolean - example: - error: BTC Faucet not fully configured - success: false - - 500: - description: Faucet call failed - - /extended/v1/tx: + status: + description: the current server status + type: string + pox_v1_unlock_height: + anyOf: + - type: integer + - type: "null" + pox_v2_unlock_height: + anyOf: + - type: integer + - type: "null" + pox_v3_unlock_height: + anyOf: + - type: integer + - type: "null" + chain_tip: + anyOf: + - type: object + properties: + block_height: + description: the current block height + type: integer + block_hash: + description: the current block hash + type: string + index_block_hash: + description: the current index block hash + type: string + microblock_hash: + description: the current microblock hash + type: string + microblock_sequence: + description: the current microblock sequence number + type: integer + burn_block_height: + description: the current burn chain block height + type: integer + required: + - block_height + - block_hash + - index_block_hash + - burn_block_height + - type: "null" + required: + - server_version + - status + /extended/v1/tx/: get: + operationId: get_transaction_list summary: Get recent transactions tags: - Transactions - operationId: get_transaction_list - description: | - Retrieves all recently mined transactions - - If using TypeScript, import typings for this response from our types package: - - `import type { TransactionResults } from '@stacks/stacks-blockchain-api-types';` + description: Retrieves all recently mined transactions parameters: - - name: limit - in: query - description: max number of transactions to fetch - required: false - schema: + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - default: 96 - maximum: 200 - example: 100 - - name: offset in: query - description: index of first transaction to fetch + name: offset required: false - schema: + description: Result offset + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit type: integer - example: 42000 - - name: type in: query - description: Filter by transaction type + name: limit required: false - style: form - explode: true - schema: + description: Results per page + - schema: type: array - example: coinbase items: - type: string - enum: [coinbase, token_transfer, smart_contract, contract_call, poison_microblock, tenure_change] - - name: from_address + anyOf: + - anyOf: + - type: string + enum: + - coinbase + - type: string + enum: + - token_transfer + - type: string + enum: + - smart_contract + - type: string + enum: + - contract_call + - type: string + enum: + - poison_microblock + - type: string + enum: + - tenure_change + - pattern: ^(coinbase|token_transfer|smart_contract|contract_call|poison_microblock|tenure_change)(,(coinbase|token_transfer|smart_contract|contract_call|poison_microblock|tenure_change))*$ + description: Comma separated list of transaction types + examples: + - coinbase,token_transfer,smart_contract + type: string in: query - description: Option to filter results by sender address + name: type required: false - schema: - type: string - - name: to_address + - schema: + default: false + type: boolean + example: true in: query - description: Option to filter results by recipient address + name: unanchored required: false - schema: - type: string - - name: sort_by + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + anyOf: + - type: string + enum: + - asc + - type: string + enum: + - desc + in: query + name: order + required: false + - schema: + default: block_height + anyOf: + - type: string + enum: + - block_height + - type: string + enum: + - burn_block_time + - type: string + enum: + - fee in: query + name: sort_by + required: false description: Option to sort results by block height, timestamp, or fee + - schema: + type: string + in: query + name: from_address required: false - schema: + description: Option to filter results by sender address + - schema: type: string - enum: [block_height, burn_block_time, fee] - example: burn_block_time - default: block_height - - name: start_time in: query - description: Filter by transactions after this timestamp (unix timestamp in seconds) + name: to_address required: false - schema: + description: Option to filter results by recipient address + - schema: type: integer - example: 1704067200 - - name: end_time + example: 1704067200 in: query - description: Filter by transactions before this timestamp (unix timestamp in seconds) + name: start_time required: false - schema: + description: Filter by transactions after this timestamp (unix timestamp in + seconds) + - schema: type: integer - example: 1706745599 - - name: contract_id + example: 1706745599 in: query - description: Filter by contract call transactions involving this contract ID + name: end_time required: false - schema: + description: Filter by transactions before this timestamp (unix timestamp in + seconds) + - schema: type: string - example: "SP000000000000000000002Q6VF78.pox-4" - - name: function_name + example: SP000000000000000000002Q6VF78.pox-4 in: query - description: Filter by contract call transactions involving this function name + name: contract_id required: false - schema: + description: Option to filter results by contract ID + - schema: type: string - example: "delegate-stx" - - name: nonce + example: delegate-stx in: query - description: Filter by transactions with this nonce + name: function_name required: false - schema: + description: Filter by contract call transactions involving this function name + - schema: + minimum: 0 + maximum: 9007199254740991 type: integer - example: 123 - - name: order + example: 123 in: query - description: Option to sort results in ascending or descending order + name: nonce required: false - schema: - type: string - enum: [asc, desc] - example: desc - default: desc - - name: unanchored + description: Filter by transactions with this nonce + responses: + "200": + description: List of transactions + content: + application/json: + schema: + description: List of transactions + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - limit + - offset + - total + - results + /extended/v1/tx/multiple: + get: + operationId: get_tx_list_details + summary: Get list of details for transactions + tags: + - Transactions + description: Retrieves a list of transactions for a given list of transaction IDs + parameters: + - schema: + type: array + items: + anyOf: + - pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Transaction ID + description: Transaction ID + examples: + - "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13d\ + f3dd7a91c6" + type: string + - pattern: ^(0x)?[a-fA-F0-9]{64}(,(0x)?[a-fA-F0-9]{64})*$ + title: Comma separated list of transaction IDs + description: Comma separate list of transaction IDs + examples: + - 0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6,0xbf06fc00be4333166b9a9be0557b9f560bee8700dfe7988bd3d3df1f1a077ed8 + type: string + in: query + name: tx_id + required: true + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks + name: event_limit required: false - schema: - type: boolean - example: true + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: event_offset + required: false + description: Result offset + - schema: default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks responses: - 200: - description: List of transactions + "200": + description: Default Response content: application/json: schema: - $ref: ./api/transaction/get-transactions.schema.json - example: - $ref: ./api/transaction/get-transactions.example.json - + type: object + additionalProperties: + anyOf: + - title: TransactionFound + description: This object returns transaction for found true + type: object + properties: + found: + const: true + type: boolean + result: + anyOf: + - anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - const: success + type: string + - const: abort_by_response + type: string + - const: abort_by_post_condition + type: string + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: smart_contract_log + type: string + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_lock + type: string + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: non_fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + const: token_transfer + type: string + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - const: success + type: string + - const: abort_by_response + type: string + - const: abort_by_post_condition + type: string + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: smart_contract_log + type: string + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_lock + type: string + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: non_fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + const: smart_contract + type: string + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - const: success + type: string + - const: abort_by_response + type: string + - const: abort_by_post_condition + type: string + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: smart_contract_log + type: string + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_lock + type: string + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: non_fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + const: contract_call + type: string + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - const: success + type: string + - const: abort_by_response + type: string + - const: abort_by_post_condition + type: string + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: smart_contract_log + type: string + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_lock + type: string + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: non_fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + const: poison_microblock + type: string + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - const: success + type: string + - const: abort_by_response + type: string + - const: abort_by_post_condition + type: string + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: smart_contract_log + type: string + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_lock + type: string + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: non_fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + const: coinbase + type: string + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise + null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - const: success + type: string + - const: abort_by_response + type: string + - const: abort_by_post_condition + type: string + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: smart_contract_log + type: string + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_lock + type: string + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: stx_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + const: non_fungible_token_asset + type: string + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - const: transfer + type: string + - const: mint + type: string + - const: burn + type: string + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + const: tenure_change + type: string + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning + block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - const: block_found + type: string + - const: extended + type: string + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + - anyOf: + - title: TokenTransferMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + tx_status: + description: Status of the transaction + anyOf: + - const: pending + type: string + - const: dropped_replace_by_fee + type: string + - const: dropped_replace_across_fork + type: string + - const: dropped_too_expensive + type: string + - const: dropped_stale_garbage_collect + type: string + - const: dropped_problematic + type: string + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + const: token_transfer + type: string + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - token_transfer + - title: SmartContractMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + tx_status: + description: Status of the transaction + anyOf: + - const: pending + type: string + - const: dropped_replace_by_fee + type: string + - const: dropped_replace_across_fork + type: string + - const: dropped_too_expensive + type: string + - const: dropped_stale_garbage_collect + type: string + - const: dropped_problematic + type: string + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + const: smart_contract + type: string + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - smart_contract + - title: ContractCallMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + tx_status: + description: Status of the transaction + anyOf: + - const: pending + type: string + - const: dropped_replace_by_fee + type: string + - const: dropped_replace_across_fork + type: string + - const: dropped_too_expensive + type: string + - const: dropped_stale_garbage_collect + type: string + - const: dropped_problematic + type: string + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + const: contract_call + type: string + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - contract_call + - title: PoisonMicroblockMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + tx_status: + description: Status of the transaction + anyOf: + - const: pending + type: string + - const: dropped_replace_by_fee + type: string + - const: dropped_replace_across_fork + type: string + - const: dropped_too_expensive + type: string + - const: dropped_stale_garbage_collect + type: string + - const: dropped_problematic + type: string + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + const: poison_microblock + type: string + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - poison_microblock + - title: CoinbaseMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + tx_status: + description: Status of the transaction + anyOf: + - const: pending + type: string + - const: dropped_replace_by_fee + type: string + - const: dropped_replace_across_fork + type: string + - const: dropped_too_expensive + type: string + - const: dropped_stale_garbage_collect + type: string + - const: dropped_problematic + type: string + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + const: coinbase + type: string + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise + null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - coinbase_payload + - title: TenureChangeMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - const: allow + type: string + - const: deny + type: string + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: stx + type: string + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent_equal_to + type: string + - const: sent_greater_than + type: string + - const: sent_greater_than_or_equal_to + type: string + - const: sent_less_than + type: string + - const: sent_less_than_or_equal_to + type: string + amount: + type: string + type: + const: fungible + type: string + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + const: principal_origin + type: string + required: + - type_id + - type: object + properties: + type_id: + const: principal_standard + type: string + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + const: principal_contract + type: string + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - const: sent + type: string + - const: not_sent + type: string + type: + const: non_fungible + type: string + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - const: on_chain_only + type: string + - const: off_chain_only + type: string + - const: any + type: string + tx_status: + description: Status of the transaction + anyOf: + - const: pending + type: string + - const: dropped_replace_by_fee + type: string + - const: dropped_replace_across_fork + type: string + - const: dropped_too_expensive + type: string + - const: dropped_stale_garbage_collect + type: string + - const: dropped_problematic + type: string + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + const: tenure_change + type: string + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning + block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - const: block_found + type: string + - const: extended + type: string + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - tenure_change_payload + required: + - found + - result + - title: TransactionNotFound + description: This object returns the id for not found transaction + type: object + properties: + found: + const: false + type: boolean + result: + type: object + properties: + tx_id: + type: string + required: + - tx_id + required: + - found + - result /extended/v1/tx/mempool: get: + operationId: get_mempool_transaction_list summary: Get mempool transactions tags: - Transactions - operationId: get_mempool_transaction_list - description: | - Retrieves all transactions that have been recently broadcast to the mempool. These are pending transactions awaiting confirmation. + description: >- + Retrieves all transactions that have been recently broadcast to the + mempool. These are pending transactions awaiting confirmation. - If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. + If you need to monitor new transactions, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. parameters: - - name: sender_address + - schema: + pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41} + title: STX Address + type: string + example: SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP in: query - description: Filter to only return transactions with this sender address. + name: sender_address required: false - schema: + description: STX Address + - schema: + pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41} + title: STX Address type: string - example: "SP1GPBP8NBRXDRJBFQBV7KMAZX1Z7W2RFWJEH0V10" - - name: recipient_address + example: SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP in: query - description: Filter to only return transactions with this recipient address (only applicable for STX transfer tx types). + name: recipient_address required: false - schema: + description: STX Address + - schema: + pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41} + title: STX Address type: string - - name: address + example: SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP in: query - description: Filter to only return transactions with this address as the sender or recipient (recipient only applicable for STX transfer tx types). + name: address required: false - schema: - type: string - - name: order_by + description: STX Address + - schema: + title: Order By + anyOf: + - type: string + enum: + - age + - type: string + enum: + - size + - type: string + enum: + - fee in: query - description: Option to sort results by transaction age, size, or fee rate. + name: order_by required: false - schema: - type: string - enum: [age, size, fee] - example: fee - - name: order + description: Option to sort results by transaction age, size, or fee rate. + - schema: + title: Order + anyOf: + - type: string + enum: + - asc + - type: string + enum: + - desc in: query - description: Option to sort results in ascending or descending order. + name: order required: false - schema: - type: string - enum: [asc, desc] - example: asc - - name: limit + description: Results order + - schema: + default: false + type: boolean + example: true in: query - description: max number of mempool transactions to fetch + name: unanchored required: false - schema: + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - default: 20 - maximum: 50 - example: 20 - - name: offset in: query - description: index of first mempool transaction to fetch + name: offset required: false - schema: + description: Result offset + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit type: integer - example: 42000 - - name: unanchored in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks + name: limit required: false - schema: - type: boolean - example: true - default: false + description: Results per page responses: - 200: + "200": description: List of mempool transactions content: application/json: schema: - $ref: ./api/transaction/get-mempool-transactions.schema.json - example: - $ref: ./api/transaction/get-mempool-transactions.example.json - - /extended/v2/mempool/fees: - get: - summary: Get mempool transaction fee priorities - tags: - - Mempool - operationId: get_mempool_fee_priorities - description: | - Returns estimated fee priorities (in micro-STX) for all transactions that are currently in the mempool. Also returns priorities separated by transaction type. - responses: - 200: - description: Mempool fee priorities - content: - application/json: - schema: - $ref: ./api/mempool/get-fee-priorities.schema.json - example: - $ref: ./api/mempool/get-fee-priorities.example.json - + description: List of mempool transactions + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: TokenTransferMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - token_transfer + - title: SmartContractMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - smart_contract + - title: ContractCallMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - contract_call + - title: PoisonMicroblockMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - poison_microblock + - title: CoinbaseMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - coinbase_payload + - title: TenureChangeMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - tenure_change_payload + required: + - limit + - offset + - total + - results /extended/v1/tx/mempool/dropped: get: + operationId: get_dropped_mempool_transaction_list summary: Get dropped mempool transactions tags: - Transactions - operationId: get_dropped_mempool_transaction_list - description: | - Retrieves all recently-broadcast transactions that have been dropped from the mempool. + description: >- + Retrieves all recently-broadcast transactions that have been dropped + from the mempool. - Transactions are dropped from the mempool if: - * they were stale and awaiting garbage collection or, - * were expensive, or - * were replaced with a new fee + Transactions are dropped from the mempool if: + * they were stale and awaiting garbage collection or, + * were expensive, or + * were replaced with a new fee parameters: - - name: limit + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer in: query - description: max number of mempool transactions to fetch + name: offset required: false - schema: + description: Result offset + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit type: integer - default: 96 - maximum: 200 - - name: offset in: query - description: index of first mempool transaction to fetch + name: limit required: false - schema: - type: integer - example: 42000 + description: Results per page responses: - 200: + "200": description: List of dropped mempool transactions content: application/json: schema: - $ref: ./api/transaction/get-mempool-transactions.schema.json - example: - $ref: ./api/transaction/get-mempool-transactions.example.json - + description: List of dropped mempool transactions + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: TokenTransferMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - token_transfer + - title: SmartContractMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - smart_contract + - title: ContractCallMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - contract_call + - title: PoisonMicroblockMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - poison_microblock + - title: CoinbaseMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - coinbase_payload + - title: TenureChangeMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - tenure_change_payload + required: + - limit + - offset + - total + - results /extended/v1/tx/mempool/stats: get: + operationId: get_mempool_transaction_stats summary: Get statistics for mempool transactions tags: - Transactions - operationId: get_mempool_transaction_stats - description: | - Queries for transactions counts, age (by block height), fees (simple average), and size. - All results broken down by transaction type and percentiles (p25, p50, p75, p95). + description: >- + Queries for transactions counts, age (by block height), fees (simple + average), and size. + All results broken down by transaction type and percentiles (p25, p50, p75, p95). responses: - 200: - description: Statistics for mempool transactions + "200": + description: GET request that returns stats on mempool transactions content: application/json: schema: - $ref: ./api/transaction/get-mempool-stats.schema.json - example: - $ref: ./api/transaction/get-mempool-stats.example.json - - /extended/v1/tx/multiple: - parameters: - - name: tx_id - in: query - description: Array of transaction ids - required: true - style: form - explode: true - schema: - type: array - example: [ - "0x0a411719e3bfde95f9e227a2d7f8fac3d6c646b1e6cc186db0e2838a2c6cd9c0", - "0xfbe6412b46e9db87df991a0d043ff47eb58019f770208cf48e2380337cc31785", - "0x178b77678a758d9f29a147d6399315c83d0f1baf114431fbe4d3587aa5fbba6f" - ] - items: - type: string - - name: event_offset - in: query - schema: - type: integer - default: 0 - description: The number of events to skip - - name: event_limit - in: query - schema: - type: integer - default: 96 - description: The numbers of events to return - - name: unanchored - in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks - required: false - schema: - type: boolean - example: true - default: false + title: MempoolTransactionStatsResponse + description: GET request that returns stats on mempool transactions + type: object + properties: + tx_type_counts: + additionalProperties: + type: integer + description: Number of tranasction in the mempool, broken down by transaction + type. + type: object + tx_simple_fee_averages: + description: The simple mean (average) transaction fee, broken down by + transaction type. Note that this does not factor in actual + execution costs. The average fee is not a reliable metric + for calculating a fee for a new transaction. + type: object + additionalProperties: + additionalProperties: true + type: object + properties: + p25: + anyOf: + - type: number + - type: "null" + p50: + anyOf: + - type: number + - type: "null" + p75: + anyOf: + - type: number + - type: "null" + p95: + anyOf: + - type: number + - type: "null" + required: + - p25 + - p50 + - p75 + - p95 + tx_ages: + description: The average time (in blocks) that transactions have lived in the + mempool. The start block height is simply the current + chain-tip of when the attached Stacks node receives the + transaction. This timing can be different across Stacks + nodes / API instances due to propagation timing + differences in the p2p network. + type: object + additionalProperties: + additionalProperties: true + type: object + properties: + p25: + anyOf: + - type: number + - type: "null" + p50: + anyOf: + - type: number + - type: "null" + p75: + anyOf: + - type: number + - type: "null" + p95: + anyOf: + - type: number + - type: "null" + required: + - p25 + - p50 + - p75 + - p95 + tx_byte_sizes: + description: The average byte size of transactions in the mempool, broken down + by transaction type. + type: object + additionalProperties: + additionalProperties: true + type: object + properties: + p25: + anyOf: + - type: number + - type: "null" + p50: + anyOf: + - type: number + - type: "null" + p75: + anyOf: + - type: number + - type: "null" + p95: + anyOf: + - type: number + - type: "null" + required: + - p25 + - p50 + - p75 + - p95 + required: + - tx_type_counts + - tx_simple_fee_averages + - tx_ages + - tx_byte_sizes + /extended/v1/tx/events: get: - summary: Get list of details for transactions + operationId: get_filtered_events + summary: Transaction Events tags: - Transactions - operationId: get_tx_list_details - description: | - Retrieves a list of transactions for a given list of transaction IDs - - If using TypeScript, import typings for this response from our types package: - - `import type { Transaction } from '@stacks/stacks-blockchain-api-types';` - responses: - 200: - description: Returns list of transactions with their details for corresponding requested tx_ids. - content: - application/json: - schema: - $ref: ./entities/transactions/transaction-list.schema.json - example: - $ref: ./entities/transactions/transactions-list-detail.example.json - 404: - description: Could not find any transaction by ID - - /extended/v1/tx/{tx_id}: - parameters: - - name: tx_id - in: path - description: Hash of transaction - required: true - schema: - type: string - example: "0x0a411719e3bfde95f9e227a2d7f8fac3d6c646b1e6cc186db0e2838a2c6cd9c0" - - name: event_offset - in: query - schema: - type: integer - default: 0 - description: The number of events to skip - - name: event_limit - in: query - schema: - type: integer - default: 96 - description: The numbers of events to return - - name: unanchored - in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks - required: false - schema: - type: boolean - example: true - default: false + description: >- + Retrieves the list of events filtered by principal (STX address or Smart + Contract ID), transaction id or event types. + The list of event types is ('smart_contract_log', 'stx_lock', 'stx_asset', 'fungible_token_asset', 'non_fungible_token_asset'). + parameters: + - schema: + pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Transaction ID + type: string + example: "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6" + in: query + name: tx_id + required: false + description: Transaction ID + - schema: + anyOf: + - pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41} + title: STX Address + description: STX Address + examples: + - SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP + type: string + - pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$ + title: Smart Contract ID + description: Smart Contract ID + examples: + - SP000000000000000000002Q6VF78.pox-3 + type: string + in: query + name: address + required: false + - schema: + type: array + items: + anyOf: + - anyOf: + - type: string + enum: + - smart_contract_log + - type: string + enum: + - stx_lock + - type: string + enum: + - stx_asset + - type: string + enum: + - fungible_token_asset + - type: string + enum: + - non_fungible_token_asset + - pattern: ^(smart_contract_log|stx_lock|stx_asset|fungible_token_asset|non_fungible_token_asset)(,(smart_contract_log|stx_lock|stx_asset|fungible_token_asset|non_fungible_token_asset))*$ + description: Comma separated list of transaction event types + examples: + - smart_contract_log,stx_lock,stx_asset + type: string + in: query + name: type + required: false + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + responses: + "200": + description: Default Response + content: + application/json: + schema: + title: List of events + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + required: + - limit + - offset + - events + /extended/v1/tx/{tx_id}: get: + operationId: get_transaction_by_id summary: Get transaction tags: - Transactions - operationId: get_transaction_by_id - description: | - Retrieves transaction details for a given transaction ID - - `import type { Transaction } from '@stacks/stacks-blockchain-api-types';` + description: Retrieves transaction details for a given transaction ID + parameters: + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer + in: query + name: event_limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: event_offset + required: false + description: Result offset + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Transaction ID + type: string + example: "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6" + in: path + name: tx_id + required: true + description: Transaction ID responses: - 200: - description: Transaction + "200": + description: Default Response content: application/json: schema: - $ref: ./entities/transactions/transaction.schema.json - example: - $ref: ./entities/transactions/transaction-4-coinbase.example.json - 404: - description: Cannot find transaction for given ID - + anyOf: + - anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for `coinbase-to-alt-recipient` + transaction types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + - anyOf: + - title: TokenTransferMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - token_transfer + - title: SmartContractMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - smart_contract + - title: ContractCallMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - contract_call + - title: PoisonMicroblockMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - poison_microblock + - title: CoinbaseMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for `coinbase-to-alt-recipient` + transaction types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - coinbase_payload + - title: TenureChangeMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - tenure_change_payload /extended/v1/tx/{tx_id}/raw: - parameters: - - name: tx_id - in: path - description: Hash of transaction - required: true - schema: - type: string - example: "0x0a411719e3bfde95f9e227a2d7f8fac3d6c646b1e6cc186db0e2838a2c6cd9c0" get: - summary: Get Raw Transaction + operationId: get_raw_transaction_by_id + summary: Get raw transaction tags: - Transactions - operationId: get_raw_transaction_by_id - description: | - Retrieves a hex encoded serialized transaction for a given ID + description: Retrieves a hex encoded serialized transaction for a given ID + parameters: + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer + in: query + name: event_limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: event_offset + required: false + description: Result offset + - schema: + pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Transaction ID + type: string + example: "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6" + in: path + name: tx_id + required: true + description: Transaction ID responses: - 200: - description: Hex encoded serialized transaction + "200": + description: GET raw transaction content: application/json: schema: - $ref: ./api/transaction/get-raw-transaction.schema.json - example: - $ref: ./api/transaction/get-raw-transaction.example.json - 404: - description: Cannot find transaction for given ID - - /v2/transactions: - post: - summary: Broadcast raw transaction + title: GetRawTransactionResult + description: GET raw transaction + type: object + properties: + raw_tx: + type: string + required: + - raw_tx + /extended/v1/tx/block/{block_hash}: + get: + operationId: get_transactions_by_block_hash + summary: Transactions by block hash tags: - Transactions - description: Broadcasts raw transactions on the network. You can use the [@stacks/transactions](https://github.com/blockstack/stacks.js) project to generate a raw transaction payload. - operationId: post_core_node_transactions - requestBody: - content: - application/octet-stream: - schema: - type: string - format: binary - example: binary format of 00000000010400bed38c2aadffa348931bcb542880ff79d607afec000000000000000000000000000000c800012b0b1fff6cccd0974966dcd665835838f0985be508e1322e09fb3d751eca132c492bda720f9ef1768d14fdabed6127560ba52d5e3ac470dcb60b784e97dc88c9030200000000000516df0ba3e79792be7be5e50a370289accfc8c9e032000000000000303974657374206d656d6f00000000000000000000000000000000000000000000000000 + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get transactions by + block](/api/get-transactions-by-block). + + Retrieves a list of all transactions within a block for a given block hash. + parameters: + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + - schema: + type: string + in: path + name: block_hash + required: true + deprecated: true responses: - 200: - description: Transaction id of successful post of a raw tx to the node's mempool - content: - text/plain: - schema: - type: string - example: "e161978626f216b2141b156ade10501207ae535fa365a13ef5d7a7c9310a09f2" - 400: - description: Rejections result in a 400 error + "200": + description: List of transactions content: application/json: schema: - $ref: ./api/transaction/post-core-node-transactions-error.schema.json - example: - $ref: ./api/transaction/post-core-node-transactions-error.example.json - - /extended/v1/microblock: + description: List of transactions + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - limit + - offset + - total + - results + /extended/v1/tx/block_height/{height}: get: - summary: Get recent microblocks + operationId: get_transactions_by_block_height + summary: Transactions by block height tags: - - Microblocks - operationId: get_microblock_list - description: | - Retrieves a list of microblocks. + - Transactions + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get transactions by + block](/api/get-transactions-by-block). - If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. + Retrieves all transactions within a block at a given height parameters: - - name: limit + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer in: query - description: Max number of microblocks to fetch + name: offset required: false - schema: - type: integer + description: Result offset + - schema: + minimum: 0 default: 20 - maximum: 200 - example: 100 - - name: offset + maximum: 50 + title: Limit + type: integer in: query - description: Index of the first microblock to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + title: Block height type: integer - example: 42000 + example: 777678 + in: path + name: height + required: true + description: Block height + deprecated: true responses: - 200: - description: List of microblocks + "200": + description: List of transactions content: application/json: schema: - $ref: ./api/microblocks/get-microblocks.schema.json - - /extended/v1/microblock/{hash}: - parameters: - - name: hash - in: path - description: Hash of the microblock - required: true - schema: - type: string - example: "0x3bfcdf84b3012adb544cf0f6df4835f93418c2269a3881885e27b3d58eb82d47" - + description: List of transactions + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - limit + - offset + - total + - results + /extended/v1/stx_supply/: get: - summary: Get microblock - description: Retrieves a specific microblock by `hash` + operationId: get_stx_supply + summary: Get total and unlocked STX supply tags: - - Microblocks - operationId: get_microblock_by_hash + - Info + description: >- + Retrieves the total and unlocked STX supply. More information on + Stacking can be found [here] + (https://docs.stacks.co/understand-stacks/stacking). + **Note:** This uses the estimated future total supply for the year 2050. + parameters: + - schema: + minimum: 0 + title: Block height + type: integer + example: 777678 + in: query + name: height + required: false + description: Supply details are queried from specified block height. If the + block height is not specified, the latest block height is taken as + default value. Note that the `block height` is referred to the + stacks blockchain. + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks responses: - 200: - description: Microblock + "200": + description: GET request that returns network target block times content: application/json: schema: - $ref: ./entities/microblocks/microblock.schema.json - 404: - description: Cannot find microblock with given hash + title: GetStxSupplyResponse + description: GET request that returns network target block times + type: object + properties: + unlocked_percent: + description: String quoted decimal number of the percentage of STX that have + unlocked + type: string + total_stx: + description: String quoted decimal number of the total possible number of STX + type: string + unlocked_stx: + description: String quoted decimal number of the STX that have been mined or + unlocked + type: string + block_height: + description: The block height at which this information was queried + type: integer + required: + - unlocked_percent + - total_stx + - unlocked_stx + - block_height + /extended/v1/stx_supply/total/plain: + get: + operationId: get_stx_supply_total_supply_plain + summary: Get total STX supply in plain text format + tags: + - Info + description: >- + Retrieves the total supply for STX tokens as plain text. + **Note:** this uses the estimated future total supply for the year 2050. + responses: + "200": + description: Default Response content: application/json: - example: - $ref: ./api/errors/microblock-not-found.example.json - - /extended/v1/microblock/unanchored/txs: + schema: + type: object + properties: + content: + text/plain: + type: string + /extended/v1/stx_supply/circulating/plain: get: - summary: Get the list of current transactions that belong to unanchored microblocks - description: Retrieves transactions that have been streamed in microblocks but not yet accepted or rejected in an anchor block + operationId: get_stx_supply_circulating_plain + summary: Get circulating STX supply in plain text format tags: - - Microblocks - operationId: get_unanchored_txs + - Info + description: Retrieves the STX tokens currently in circulation that have been + unlocked as plain text. responses: - 200: - description: Transactions + "200": + description: Default Response content: application/json: schema: - $ref: ./api/microblocks/get-unanchored-txs.schema.json - - /extended/v2/burn-blocks: + type: object + properties: + content: + text/plain: + type: string + /extended/v1/stx_supply/legacy_format: get: - summary: Get burn blocks - description: | - Retrieves a list of recent burn blocks + operationId: get_total_stx_supply_legacy_format + summary: Get total and unlocked STX supply (results formatted the same as the + legacy 1.0 API) tags: - - Burn Blocks - operationId: get_burn_blocks + - Info + description: >- + Retrieves total supply of STX tokens including those currently in + circulation that have been unlocked. + **Note:** this uses the estimated future total supply for the year 2050. parameters: - - name: limit + - schema: + minimum: 0 + title: Block height + type: integer + example: 777678 in: query - description: max number of burn blocks to fetch + name: height required: false - schema: - type: integer - default: 20 - maximum: 30 - - name: offset + description: Supply details are queried from specified block height. If the + block height is not specified, the latest block height is taken as + default value. Note that the `block height` is referred to the + stacks blockchain. + - schema: + default: false + type: boolean + example: true in: query - description: index of first burn block to fetch + name: unanchored required: false - schema: - type: integer - example: 42000 + description: Include data from unanchored (i.e. unconfirmed) microblocks responses: - 200: - description: List of burn blocks + "200": + description: GET request that returns network target block times content: application/json: schema: - $ref: ./api/blocks/get-burn-blocks.schema.json - example: - $ref: ./api/blocks/get-burn-blocks.example.json - - /extended/v2/burn-blocks/{height_or_hash}: + title: GetStxSupplyLegacyFormatResponse + description: GET request that returns network target block times + type: object + properties: + unlockedPercent: + description: String quoted decimal number of the percentage of STX that have + unlocked + type: string + totalStacks: + description: String quoted decimal number of the total possible number of STX + type: string + totalStacksFormatted: + description: Same as `totalStacks` but formatted with comma thousands separators + type: string + unlockedSupply: + description: String quoted decimal number of the STX that have been mined or + unlocked + type: string + unlockedSupplyFormatted: + description: Same as `unlockedSupply` but formatted with comma thousands + separators + type: string + blockHeight: + description: The block height at which this information was queried + type: string + required: + - unlockedPercent + - totalStacks + - totalStacksFormatted + - unlockedSupply + - unlockedSupplyFormatted + - blockHeight + /extended/v1/info/network_block_times: get: - summary: Get burn block - description: Retrieves a single burn block + operationId: get_network_block_times + summary: Get the network target block time tags: - - Burn Blocks - operationId: get_burn_block - parameters: - - name: height_or_hash - in: path - description: filter by burn block height, hash, or the constant `latest` to filter for the most recent burn block - required: true - schema: - oneOf: - - type: integer - example: 42000 - - type: string - example: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + - Info + description: Retrieves the target block times for mainnet and testnet. The block + time is hardcoded and will change throughout the implementation phases + of the testnet. responses: - 200: - description: Burn block + "200": + description: GET request that returns network target block times content: application/json: schema: - $ref: ./entities/blocks/burn-block.schema.json - example: - $ref: ./entities/blocks/burn-block.example.json - - /extended/v2/burn-blocks/{height_or_hash}/blocks: + title: NetworkBlockTimesResponse + description: GET request that returns network target block times + type: object + properties: + mainnet: + type: object + properties: + target_block_time: + type: integer + required: + - target_block_time + testnet: + type: object + properties: + target_block_time: + type: integer + required: + - target_block_time + required: + - mainnet + - testnet + /extended/v1/info/network_block_time/{network}: get: - summary: Get blocks by burn block - description: | - Retrieves a list of blocks confirmed by a specific burn block + operationId: get_network_block_time_by_network + summary: Get a given network's target block time tags: - - Blocks - operationId: get_blocks_by_burn_block + - Info + description: Retrieves the target block time for a given network. The network + can be mainnet or testnet. The block time is hardcoded and will change + throughout the implementation phases of the testnet. parameters: - - name: height_or_hash + - schema: + anyOf: + - type: string + enum: + - testnet + - type: string + enum: + - mainnet in: path - description: filter by burn block height, hash, or the constant `latest` to filter for the most recent burn block + name: network required: true - schema: - oneOf: - - type: integer - example: 42000 - - type: string - example: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" - - name: limit - in: query - description: max number of blocks to fetch - required: false - schema: - type: integer - example: 20 - - name: offset - in: query - description: index of first burn block to fetch - required: false - schema: - type: integer - example: 0 responses: - 200: - description: List of blocks + "200": + description: GET request that target block time for a given network content: application/json: schema: - $ref: ./api/blocks/get-nakamoto-blocks.schema.json - example: - $ref: ./api/blocks/get-nakamoto-blocks.example.json - - /extended/v2/blocks: + title: NetworkBlockTimeResponse + description: GET request that target block time for a given network + type: object + properties: + target_block_time: + type: integer + required: + - target_block_time + /extended/v1/tokens/nft/holdings: get: - summary: Get blocks - description: | - Retrieves a list of recently mined blocks + operationId: get_nft_holdings + summary: Non-Fungible Token holdings tags: - - Blocks - operationId: get_blocks + - Non-Fungible Tokens + description: >- + Retrieves the list of Non-Fungible Tokens owned by the given principal + (STX address or Smart Contract ID). + Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token. + + More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). parameters: - - name: limit + - schema: + type: string + example: SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v3 in: query - description: max number of blocks to fetch - required: false - schema: + name: principal + required: true + description: token owner's STX address or Smart Contract ID + - schema: + type: array + items: + description: identifiers of the token asset classes to filter for + examples: + - SPQZF23W7SEYBFG5JQ496NMY0G7379SRYEDREMSV.Candy::candy + type: string + in: query + name: asset_identifiers + required: false + - schema: + minimum: 0 + default: 50 + maximum: 200 + title: Limit type: integer - example: 20 - - name: offset in: query - description: index of first burn block to fetch + name: limit required: false - schema: + description: max number of tokens to fetch + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 0 + in: query + name: offset + required: false + description: index of first tokens to fetch + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + default: false + type: boolean + in: query + name: tx_metadata + required: true + description: whether or not to include the complete transaction metadata instead + of just `tx_id`. Enabling this option can affect performance and + response times. responses: - 200: - description: List of blocks + "200": + description: List of Non-Fungible Token holdings content: application/json: schema: - $ref: ./api/blocks/get-nakamoto-blocks.schema.json - example: - $ref: ./api/blocks/get-nakamoto-blocks.example.json - - /extended/v2/blocks/average-times: + description: List of Non-Fungible Token holdings + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: NonFungibleTokenHoldingsList + description: List of Non-Fungible Token holdings + anyOf: + - title: NonFungibleTokenHoldingWithTxId + description: Ownership of a Non-Fungible Token + type: object + properties: + asset_identifier: + type: string + value: + description: Non-Fungible Token value + type: object + properties: + hex: + description: Hex string representing the identifier of the Non-Fungible Token + type: string + repr: + description: Readable string of the Non-Fungible Token identifier + type: string + required: + - hex + - repr + block_height: + type: integer + tx_id: + type: string + required: + - asset_identifier + - value + - block_height + - tx_id + - title: NonFungibleTokenHoldingWithTxMetadata + description: Ownership of a Non-Fungible Token with transaction metadata + type: object + properties: + asset_identifier: + type: string + value: + description: Non-Fungible Token value + type: object + properties: + hex: + description: Hex string representing the identifier of the Non-Fungible Token + type: string + repr: + description: Readable string of the Non-Fungible Token identifier + type: string + required: + - hex + - repr + block_height: + type: integer + tx: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise + null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning + block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - asset_identifier + - value + - block_height + - tx + required: + - limit + - offset + - total + - results + /extended/v1/tokens/nft/history: get: - summary: Get average block times - description: | - Retrieves average block times (in seconds) + operationId: get_nft_history + summary: Non-Fungible Token history tags: - - Blocks - operationId: get_average_block_times - responses: - 200: - description: Average block times (in seconds) - content: - application/json: - schema: - $ref: ./api/blocks/get-average-times.schema.json - example: - $ref: ./api/blocks/get-average-times.example.json + - Non-Fungible Tokens + description: >- + Retrieves all events relevant to a Non-Fungible Token. Useful to + determine the ownership history of a particular asset. - /extended/v2/blocks/{height_or_hash}: - get: - summary: Get block - description: | - Retrieves a single block - tags: - - Blocks - operationId: get_block + More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). parameters: - - name: height_or_hash - in: path - description: filter by block height, hash, index block hash or the constant `latest` to filter for the most recent block + - schema: + type: string + example: SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild + in: query + name: asset_identifier required: true - schema: - oneOf: - - type: integer - example: 42000 - - type: string - example: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + description: asset class identifier + - schema: + type: string + example: "0x0100000000000000000000000000000803" + in: query + name: value + required: true + description: hex representation of the token's unique value + - schema: + minimum: 0 + default: 50 + maximum: 200 + title: Limit + type: integer + in: query + name: limit + required: false + description: max number of events to fetch + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: index of first event to fetch + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + default: false + type: boolean + in: query + name: tx_metadata + required: true + description: whether or not to include the complete transaction metadata instead + of just `tx_id`. Enabling this option can affect performance and + response times. responses: - 200: - description: Block + "200": + description: List of Non-Fungible Token history events content: application/json: schema: - $ref: ./entities/blocks/nakamoto-block.schema.json - example: - $ref: ./entities/blocks/nakamoto-block.example.json - - /extended/v2/blocks/{height_or_hash}/transactions: + description: List of Non-Fungible Token history events + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: NonFungibleTokenHistoryEvent + description: Describes an event from the history of a Non-Fungible Token + anyOf: + - title: NonFungibleTokenHistoryEventWithTxId + description: Non-Fungible Token history event with transaction id + type: object + properties: + sender: + anyOf: + - type: string + - type: "null" + recipient: + type: string + event_index: + type: integer + asset_event_type: + type: string + tx_id: + type: string + required: + - event_index + - asset_event_type + - tx_id + - title: NonFungibleTokenHistoryEventWithTxMetadata + description: Non-Fungible Token history event with transaction metadata + type: object + properties: + sender: + anyOf: + - type: string + - type: "null" + recipient: + type: string + event_index: + type: integer + asset_event_type: + type: string + tx: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise + null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning + block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - event_index + - asset_event_type + - tx + required: + - limit + - offset + - total + - results + /extended/v1/tokens/nft/mints: get: - summary: Get transactions by block - description: | - Retrieves transactions confirmed in a single block + operationId: get_nft_mints + summary: Non-Fungible Token mints tags: - - Transactions - operationId: get_transactions_by_block + - Non-Fungible Tokens + description: >- + Retrieves all mint events for a Non-Fungible Token asset class. Useful + to determine which NFTs of a particular collection have been claimed. + + More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). parameters: - - name: height_or_hash - in: path - description: filter by block height, hash, index block hash or the constant `latest` to filter for the most recent block + - schema: + type: string + example: SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild + in: query + name: asset_identifier required: true - schema: - oneOf: - - type: integer - example: 42000 - - type: string - example: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + description: asset class identifier + - schema: + minimum: 0 + default: 50 + maximum: 200 + title: Limit + type: integer + in: query + name: limit + required: false + description: max number of events to fetch + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: index of first event to fetch + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + default: false + type: boolean + in: query + name: tx_metadata + required: true + description: whether or not to include the complete transaction metadata instead + of just `tx_id`. Enabling this option can affect performance and + response times. responses: - 200: - description: List of transactions + "200": + description: List of Non-Fungible Token mint events for an asset identifier content: application/json: schema: - $ref: ./api/transaction/get-transactions.schema.json - example: - $ref: ./api/transaction/get-transactions.example.json - - /extended/v2/addresses/{address}/transactions: + title: NonFungibleTokenMintList + description: List of Non-Fungible Token mint events for an asset identifier + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: NonFungibleTokenMint + description: Describes the minting of a Non-Fungible Token + anyOf: + - title: NonFungibleTokenMintWithTxId + description: Non-Fungible Token mint event with transaction id + type: object + properties: + recipient: + type: string + event_index: + type: integer + value: + description: Non-Fungible Token value + type: object + properties: + hex: + description: Hex string representing the identifier of the Non-Fungible Token + type: string + repr: + description: Readable string of the Non-Fungible Token identifier + type: string + required: + - hex + - repr + tx_id: + type: string + required: + - event_index + - value + - tx_id + - type: object + properties: + recipient: + type: string + event_index: + type: integer + value: + description: Non-Fungible Token value + type: object + properties: + hex: + description: Hex string representing the identifier of the Non-Fungible Token + type: string + repr: + description: Readable string of the Non-Fungible Token identifier + type: string + required: + - hex + - repr + tx: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise + null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from + an account will have a nonce value equal + to 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include + the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a microblock) + then this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned + in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning + block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - event_index + - value + - tx + required: + - limit + - offset + - total + - results + /extended/v1/tokens/ft/{token}/holders: get: - summary: Get address transactions - description: | - Retrieves a paginated list of confirmed transactions sent or received by a STX address or Smart Contract ID, alongside the total amount of STX sent or received and the number of STX, FT and NFT transfers contained within each transaction. - - More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). + operationId: get_ft_holders + summary: Fungible token holders tags: - - Transactions - operationId: get_address_transactions + - Fungible Tokens + description: Retrieves the list of Fungible Token holders for a given token ID. + Specify `stx` for the `token` parameter to get the list of STX holders. parameters: - - name: address - in: path - description: STX address or Smart Contract ID - required: true - schema: - type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: limit + - schema: + minimum: 0 + default: 100 + maximum: 200 + title: Limit + type: integer in: query - description: Number of transactions to fetch + name: limit required: false - schema: + description: max number of holders to fetch + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 20 - - name: offset in: query - description: Index of first transaction to fetch + name: offset required: false - schema: - type: integer - example: 10 + description: index of first holder to fetch + - schema: + type: string + examples: + stx: + value: stx + SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc::aeUSDC: + value: SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc::aeUSDC + in: path + name: token + required: true + description: fungible token identifier responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/address/get-v2-address-transactions.schema.json - example: - $ref: ./api/address/get-v2-address-transactions.example.json - - /extended/v2/addresses/{address}/transactions/{tx_id}/events: + type: object + properties: + total_supply: + description: The total supply of the token (the sum of all balances) + type: string + example: "5817609278457" + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: FtHolderEntry + type: object + properties: + address: + description: Principal of the token holder + type: string + example: SP3G2QZHYDZPJ2FBN2V2MB74T5ZQ6FQK2P5QJ2K6 + balance: + description: The balance of the token held by the address + type: string + example: "174823763" + required: + - address + - balance + required: + - total_supply + - limit + - offset + - total + - results + /extended/v1/contract/by_trait: get: - summary: Get events for an address transaction - description: | - Retrieves a paginated list of all STX, FT and NFT events concerning a STX address or Smart Contract ID within a specific transaction. + operationId: get_contracts_by_trait + summary: Get contracts by trait tags: - - Transactions - operationId: get_address_transaction_events + - Smart Contracts + description: Retrieves a list of contracts based on the following traits listed + in JSON format - functions, variables, maps, fungible tokens and + non-fungible tokens parameters: - - name: address - in: path - description: STX address or Smart Contract ID - required: true - schema: + - schema: type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: tx_id - in: path - description: Transaction ID + in: query + name: trait_abi required: true - schema: - type: string - example: "0x0a411719e3bfde95f9e227a2d7f8fac3d6c646b1e6cc186db0e2838a2c6cd9c0" - - name: limit + description: JSON abi of the trait. + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer in: query - description: Number of events to fetch + name: limit required: false - schema: + description: max number of contracts fetch + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 20 - - name: offset in: query - description: Index of first event to fetch + name: offset required: false - schema: - type: integer - example: 10 + description: index of first contract event to fetch responses: - 200: - description: Success + "200": + description: GET list of contracts content: application/json: schema: - $ref: ./api/address/get-address-transaction-events.schema.json - example: - $ref: ./api/address/get-address-transaction-events.example.json - - /extended/v2/smart-contracts/status: + title: ContractListResponse + description: GET list of contracts + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + results: + type: array + items: + title: SmartContract + description: A Smart Contract Detail + type: object + properties: + tx_id: + type: string + canonical: + type: boolean + contract_id: + type: string + block_height: + type: integer + clarity_version: + anyOf: + - type: integer + - type: "null" + source_code: + type: string + abi: + anyOf: + - type: string + - type: "null" + required: + - tx_id + - canonical + - contract_id + - block_height + - clarity_version + - source_code + - abi + required: + - limit + - offset + - results + /extended/v1/contract/{contract_id}: get: - summary: Get smart contracts status - description: | - Retrieves the deployment status of multiple smart contracts. + operationId: get_contract_by_id + summary: Get contract info tags: - Smart Contracts - operationId: get_smart_contracts_status + description: Retrieves details of a contract with a given `contract_id` parameters: - - name: contract_id - in: query - description: contract ids to fetch status for + - schema: + type: string + example: SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles + in: path + name: contract_id required: true - style: form - explode: true - schema: - type: array - example: "SPQZF23W7SEYBFG5JQ496NMY0G7379SRYEDREMSV.Candy" - items: - type: string + description: Contract identifier formatted as `.` responses: - 200: - description: List of smart contract status + "200": + description: A Smart Contract Detail content: application/json: schema: - $ref: ./api/smart-contracts/get-smart-contracts-status.schema.json - example: - $ref: ./api/smart-contracts/get-smart-contracts-status.example.json - - /extended/v2/pox/cycles: + title: SmartContract + description: A Smart Contract Detail + type: object + properties: + tx_id: + type: string + canonical: + type: boolean + contract_id: + type: string + block_height: + type: integer + clarity_version: + anyOf: + - type: integer + - type: "null" + source_code: + type: string + abi: + anyOf: + - type: string + - type: "null" + required: + - tx_id + - canonical + - contract_id + - block_height + - clarity_version + - source_code + - abi + /extended/v1/contract/{contract_id}/events: get: - summary: Get PoX cycles - description: Retrieves a list of PoX cycles + operationId: get_contract_events_by_id + summary: Get contract events tags: - - Proof of Transfer - operationId: get_pox_cycles + - Smart Contracts + description: Retrieves a list of events that have been triggered by a given + `contract_id` parameters: - - name: limit + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer in: query - description: max number of cycles to fetch + name: limit required: false - schema: + description: max number of events to fetch + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - default: 20 - maximum: 60 - - name: offset in: query - description: index of first cycle to fetch + name: offset required: false - schema: - type: integer - example: 20 + description: Result offset + - schema: + type: string + example: SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles + in: path + name: contract_id + required: true + description: Contract identifier formatted as `.` responses: - 200: - description: List of cycles + "200": + description: List of events content: application/json: schema: - $ref: ./api/stacking/get-pox-cycles.schema.json - example: - $ref: ./api/stacking/get-pox-cycles.example.json - - /extended/v2/pox/cycles/{cycle_number}: - get: - summary: Get PoX cycle - description: Retrieves details for a PoX cycle + description: List of events + type: object + properties: + limit: + type: integer + offset: + type: integer + results: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + required: + - limit + - offset + - results + /extended/v1/fee_rate/: + post: + operationId: fetch_fee_rate + summary: Fetch fee rate tags: - - Proof of Transfer - operationId: get_pox_cycle - parameters: - - name: cycle_number - in: path - description: PoX cycle number - required: true - schema: - type: integer - example: 56 + - Fees + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get approximate fees + for a given + transaction](/api/get-approximate-fees-for-a-given-transaction). + + Retrieves estimated fee rate. + requestBody: + content: + application/json: + schema: + title: FeeRateRequest + description: Request to fetch fee for a transaction + type: object + properties: + transaction: + description: A serialized transaction + type: string + required: + - transaction + required: true + description: Request to fetch fee for a transaction + deprecated: true responses: - 200: - description: Details for cycle + "200": + description: Get fee rate information. content: application/json: schema: - $ref: ./entities/stacking/pox-cycle.schema.json - example: - $ref: ./entities/stacking/pox-cycle.example.json - - /extended/v2/pox/cycles/{cycle_number}/signers: + title: FeeRate + description: Get fee rate information. + type: object + properties: + fee_rate: + type: integer + required: + - fee_rate + /extended/v1/microblock/: get: - summary: Get signers in PoX cycle - description: Retrieves a list of signers in a PoX cycle + operationId: get_microblock_list + summary: Get recent microblocks tags: - - Proof of Transfer - operationId: get_pox_cycle_signers + - Microblocks + description: >- + Retrieves a list of microblocks. + + If you need to actively monitor new microblocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. parameters: - - name: cycle_number - in: path - description: PoX cycle number - required: true - schema: + - schema: + minimum: 0 + default: 20 + maximum: 200 + title: Limit + type: integer + in: query + name: limit + required: false + description: Max number of microblocks to fetch + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 56 + in: query + name: offset + required: false + description: Result offset responses: - 200: - description: List of signers for cycle + "200": + description: GET request that returns microblocks content: application/json: schema: - $ref: ./api/stacking/get-pox-cycle-signers.schema.json - example: - $ref: ./api/stacking/get-pox-cycle-signers.example.json - - /extended/v2/pox/cycles/{cycle_number}/signers/{signer_key}: + title: MicroblockListResponse + description: GET request that returns microblocks + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: Microblock + description: A microblock + type: object + properties: + canonical: + description: Set to `true` if the microblock corresponds to the canonical chain + tip. + type: boolean + microblock_canonical: + description: Set to `true` if the microblock was not orphaned in a following + anchor block. Defaults to `true` if the following + anchor block has not yet been created. + type: boolean + microblock_hash: + description: The SHA512/256 hash of this microblock. + type: string + microblock_sequence: + description: A hint to describe how to order a set of microblocks. Starts at 0. + type: integer + microblock_parent_hash: + description: The SHA512/256 hash of the previous signed microblock in this + stream. + type: string + block_height: + description: The anchor block height that confirmed this microblock. + type: integer + parent_block_height: + description: The height of the anchor block that preceded this microblock. + type: integer + parent_block_hash: + description: The hash of the anchor block that preceded this microblock. + type: string + parent_burn_block_hash: + description: The hash of the Bitcoin block that preceded this microblock. + type: string + parent_burn_block_time: + description: The block timestamp of the Bitcoin block that preceded this + microblock. + type: integer + parent_burn_block_time_iso: + description: The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the + bitcoin block that preceded this microblock. + type: string + parent_burn_block_height: + description: The height of the Bitcoin block that preceded this microblock. + type: integer + block_hash: + anyOf: + - description: The hash of the anchor block that confirmed this microblock. This + wil be empty for unanchored microblocks + type: string + - type: "null" + txs: + description: List of transactions included in the microblock + type: array + items: + type: string + required: + - canonical + - microblock_canonical + - microblock_hash + - microblock_sequence + - microblock_parent_hash + - block_height + - parent_block_height + - parent_block_hash + - parent_burn_block_hash + - parent_burn_block_time + - parent_burn_block_time_iso + - parent_burn_block_height + - block_hash + - txs + required: + - limit + - offset + - total + - results + /extended/v1/microblock/{hash}: get: - summary: Get signer in PoX cycle - description: Retrieves details for a signer in a PoX cycle + operationId: get_microblock_by_hash + summary: Get microblock tags: - - Proof of Transfer - operationId: get_pox_cycle_signer + - Microblocks + description: Retrieves a specific microblock by `hash` parameters: - - name: cycle_number - in: path - description: PoX cycle number - required: true - schema: - type: integer - example: 56 - - name: signer_key + - schema: + type: string + example: "0x3bfcdf84b3012adb544cf0f6df4835f93418c2269a3881885e27b3d58eb82d47" in: path - description: Signer key + name: hash required: true - schema: - type: string - example: "0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d" + description: Hash of the microblock responses: - 200: - description: Details for PoX signer + "200": + description: A microblock content: application/json: schema: - $ref: ./entities/stacking/signer.schema.json - example: - $ref: ./entities/stacking/signer.example.json - - /extended/v2/pox/cycles/{cycle_number}/signers/{signer_key}/stackers: + title: Microblock + description: A microblock + type: object + properties: + canonical: + description: Set to `true` if the microblock corresponds to the canonical chain + tip. + type: boolean + microblock_canonical: + description: Set to `true` if the microblock was not orphaned in a following + anchor block. Defaults to `true` if the following anchor + block has not yet been created. + type: boolean + microblock_hash: + description: The SHA512/256 hash of this microblock. + type: string + microblock_sequence: + description: A hint to describe how to order a set of microblocks. Starts at 0. + type: integer + microblock_parent_hash: + description: The SHA512/256 hash of the previous signed microblock in this + stream. + type: string + block_height: + description: The anchor block height that confirmed this microblock. + type: integer + parent_block_height: + description: The height of the anchor block that preceded this microblock. + type: integer + parent_block_hash: + description: The hash of the anchor block that preceded this microblock. + type: string + parent_burn_block_hash: + description: The hash of the Bitcoin block that preceded this microblock. + type: string + parent_burn_block_time: + description: The block timestamp of the Bitcoin block that preceded this + microblock. + type: integer + parent_burn_block_time_iso: + description: The ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) formatted block time of the + bitcoin block that preceded this microblock. + type: string + parent_burn_block_height: + description: The height of the Bitcoin block that preceded this microblock. + type: integer + block_hash: + anyOf: + - description: The hash of the anchor block that confirmed this microblock. This + wil be empty for unanchored microblocks + type: string + - type: "null" + txs: + description: List of transactions included in the microblock + type: array + items: + type: string + required: + - canonical + - microblock_canonical + - microblock_hash + - microblock_sequence + - microblock_parent_hash + - block_height + - parent_block_height + - parent_block_hash + - parent_burn_block_hash + - parent_burn_block_time + - parent_burn_block_time_iso + - parent_burn_block_height + - block_hash + - txs + /extended/v1/microblock/unanchored/txs: get: - summary: Get stackers for signer in PoX cycle - description: Retrieves a list of stackers for a signer in a PoX cycle + operationId: get_unanchored_txs + summary: Get the list of current transactions that belong to unanchored + microblocks tags: - - Proof of Transfer - operationId: get_pox_cycle_signer_stackers - parameters: - - name: cycle_number - in: path - description: PoX cycle number - required: true - schema: - type: integer - example: 56 - - name: signer_key - in: path - description: Signer key - required: true - schema: - type: string - example: "0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d" + - Microblocks + description: Retrieves transactions that have been streamed in microblocks but + not yet accepted or rejected in an anchor block responses: - 200: - description: List of stackers + "200": + description: Default Response content: application/json: schema: - $ref: ./api/stacking/get-pox-cycle-signer-stackers.schema.json - example: - $ref: ./api/stacking/get-pox-cycle-signer-stackers.example.json - - /extended/v1/block: + type: object + properties: + total: + type: integer + results: + type: array + items: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - total + - results + /extended/v1/block/: get: + operationId: get_block_list summary: Get recent blocks - deprecated: true - description: | - **NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). - - Retrieves a list of recently mined blocks - - If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. tags: - Blocks - operationId: get_block_list + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get + blocks](/api/get-blocks). + + Retrieves a list of recently mined blocks + + If you need to actively monitor new blocks, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. parameters: - - name: limit - in: query - description: max number of blocks to fetch - required: false - schema: - type: integer + - schema: + minimum: 0 default: 20 maximum: 30 - - name: offset + title: Limit + type: integer in: query - description: index of first block to fetch + name: limit required: false - schema: + description: max number of blocks to fetch + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 42000 + in: query + name: offset + required: false + description: Result offset + deprecated: true responses: - 200: - description: List of blocks + "200": + description: GET request that returns blocks content: application/json: schema: - $ref: ./api/blocks/get-blocks.schema.json - example: - $ref: ./api/blocks/get-blocks.example.json - /extended/v1/block/{hash}: - parameters: - - name: hash - in: path - description: Hash of the block - required: true - schema: - type: string - example: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + title: BlockListResponse + description: GET request that returns blocks + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: Block + description: A block + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + txs: + description: List of transactions included in the block + type: array + items: + description: Transaction ID + type: string + parent_microblock_hash: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every + anchored block will have a parent microblock stream. + An anchored block that does not have a parent + microblock stream has the parent microblock hash set + to an empty string, and the parent microblock + sequence number set to -1. + type: string + parent_microblock_sequence: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every + anchored block will have a parent microblock stream. + An anchored block that does not have a parent + microblock stream has the parent microblock hash set + to an empty string, and the parent microblock + sequence number set to -1. + type: integer + microblocks_accepted: + description: List of microblocks that were accepted in this anchor block. Not + every anchored block will have a accepted all (or + any) of the previously streamed microblocks. + Microblocks that were orphaned are not included in + this list. + type: array + items: + description: Microblock hash + type: string + microblocks_streamed: + description: List of microblocks that were streamed/produced by this anchor + block's miner. This list only includes microblocks + that were accepted in the following anchor block. + Microblocks that were orphaned are not included in + this list. + type: array + items: + description: Microblock hash + type: string + microblock_tx_count: + description: List of txs counts in each accepted microblock + type: object + additionalProperties: + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - txs + - parent_microblock_hash + - parent_microblock_sequence + - microblocks_accepted + - microblocks_streamed + - microblock_tx_count + required: + - limit + - offset + - total + - results + /extended/v1/block/by_height/{height}: get: - deprecated: true - summary: Get block by hash - description: | - **NOTE:** This endpoint is deprecated in favor of [Get block](/api/get-block). - - Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block ('get_block_list' API) to get your block details. + operationId: get_block_by_height + summary: Get block by height tags: - Blocks - operationId: get_block_by_hash + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get + block](/api/get-block). + + Retrieves block details of a specific block at a given block height + parameters: + - schema: + minimum: 0 + type: integer + example: 10000 + in: path + name: height + required: true + description: Height of the block + deprecated: true responses: - 200: - description: Block + "200": + description: A block content: application/json: schema: - $ref: ./entities/blocks/block.schema.json - example: - $ref: ./entities/blocks/block.example.json - 404: - description: Cannot find block with given ID - content: - application/json: - example: - $ref: ./api/errors/block-not-found.example.json - /extended/v1/block/by_height/{height}: - parameters: - - name: height - in: path - description: Height of the block - required: true - schema: - type: number - example: 10000 + title: Block + description: A block + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + txs: + description: List of transactions included in the block + type: array + items: + description: Transaction ID + type: string + parent_microblock_hash: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every anchored + block will have a parent microblock stream. An anchored + block that does not have a parent microblock stream has + the parent microblock hash set to an empty string, and the + parent microblock sequence number set to -1. + type: string + parent_microblock_sequence: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every anchored + block will have a parent microblock stream. An anchored + block that does not have a parent microblock stream has + the parent microblock hash set to an empty string, and the + parent microblock sequence number set to -1. + type: integer + microblocks_accepted: + description: List of microblocks that were accepted in this anchor block. Not + every anchored block will have a accepted all (or any) of + the previously streamed microblocks. Microblocks that were + orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblocks_streamed: + description: List of microblocks that were streamed/produced by this anchor + block's miner. This list only includes microblocks that + were accepted in the following anchor block. Microblocks + that were orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblock_tx_count: + description: List of txs counts in each accepted microblock + type: object + additionalProperties: + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - txs + - parent_microblock_hash + - parent_microblock_sequence + - microblocks_accepted + - microblocks_streamed + - microblock_tx_count + /extended/v1/block/by_burn_block_height/{burn_block_height}: get: - deprecated: true - summary: Get block by height - description: | - **NOTE:** This endpoint is deprecated in favor of [Get block](/api/get-block). - - Retrieves block details of a specific block at a given block height + operationId: get_block_by_burn_block_height + summary: Get block by burnchain height tags: - Blocks - operationId: get_block_by_height + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get + blocks](/api/get-blocks). + + Retrieves block details of a specific block for a given burn chain height + parameters: + - schema: + minimum: 0 + type: integer + example: 744603 + in: path + name: burn_block_height + required: true + description: Height of the burn chain block + deprecated: true responses: - 200: - description: Block + "200": + description: A block content: application/json: schema: - $ref: ./entities/blocks/block.schema.json - example: - $ref: ./entities/blocks/block.example.json - 404: - description: Cannot find block with given height - content: - application/json: - example: - $ref: ./api/errors/block-not-found.example.json - /extended/v1/block/by_burn_block_hash/{burn_block_hash}: - parameters: - - name: burn_block_hash - in: path - description: Hash of the burnchain block - required: true - schema: - type: string - example: "0x00000000000000000002bba732926cf68b6eda3e2cdbc2a85af79f10efeeeb10" + title: Block + description: A block + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + txs: + description: List of transactions included in the block + type: array + items: + description: Transaction ID + type: string + parent_microblock_hash: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every anchored + block will have a parent microblock stream. An anchored + block that does not have a parent microblock stream has + the parent microblock hash set to an empty string, and the + parent microblock sequence number set to -1. + type: string + parent_microblock_sequence: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every anchored + block will have a parent microblock stream. An anchored + block that does not have a parent microblock stream has + the parent microblock hash set to an empty string, and the + parent microblock sequence number set to -1. + type: integer + microblocks_accepted: + description: List of microblocks that were accepted in this anchor block. Not + every anchored block will have a accepted all (or any) of + the previously streamed microblocks. Microblocks that were + orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblocks_streamed: + description: List of microblocks that were streamed/produced by this anchor + block's miner. This list only includes microblocks that + were accepted in the following anchor block. Microblocks + that were orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblock_tx_count: + description: List of txs counts in each accepted microblock + type: object + additionalProperties: + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - txs + - parent_microblock_hash + - parent_microblock_sequence + - microblocks_accepted + - microblocks_streamed + - microblock_tx_count + /extended/v1/block/{hash}: get: - summary: Get block by burnchain block hash - deprecated: true - description: | - **NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). - - Retrieves block details of a specific block for a given burnchain block hash + operationId: get_block_by_hash + summary: Get block by hash tags: - Blocks - operationId: get_block_by_burn_block_hash + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get + block](/api/get-block). + + Retrieves block details of a specific block for a given chain height. You can use the hash from your latest block ('get_block_list' API) to get your block details. + parameters: + - schema: + type: string + example: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + in: path + name: hash + required: true + description: Hash of the block + deprecated: true responses: - 200: - description: Block + "200": + description: A block content: application/json: schema: - $ref: ./entities/blocks/block.schema.json - example: - $ref: ./entities/blocks/block.example.json - 404: - description: Cannot find block with given height - content: - application/json: - example: - $ref: ./api/errors/block-not-found.example.json - - /extended/v1/block/by_burn_block_height/{burn_block_height}: - parameters: - - name: burn_block_height - in: path - description: Height of the burn chain block - required: true - schema: - type: number - example: 744603 + title: Block + description: A block + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + txs: + description: List of transactions included in the block + type: array + items: + description: Transaction ID + type: string + parent_microblock_hash: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every anchored + block will have a parent microblock stream. An anchored + block that does not have a parent microblock stream has + the parent microblock hash set to an empty string, and the + parent microblock sequence number set to -1. + type: string + parent_microblock_sequence: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every anchored + block will have a parent microblock stream. An anchored + block that does not have a parent microblock stream has + the parent microblock hash set to an empty string, and the + parent microblock sequence number set to -1. + type: integer + microblocks_accepted: + description: List of microblocks that were accepted in this anchor block. Not + every anchored block will have a accepted all (or any) of + the previously streamed microblocks. Microblocks that were + orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblocks_streamed: + description: List of microblocks that were streamed/produced by this anchor + block's miner. This list only includes microblocks that + were accepted in the following anchor block. Microblocks + that were orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblock_tx_count: + description: List of txs counts in each accepted microblock + type: object + additionalProperties: + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - txs + - parent_microblock_hash + - parent_microblock_sequence + - microblocks_accepted + - microblocks_streamed + - microblock_tx_count + /extended/v1/block/by_burn_block_hash/{burn_block_hash}: get: - summary: Get block by burnchain height - deprecated: true - description: | - **NOTE:** This endpoint is deprecated in favor of [Get blocks](/api/get-blocks). - - Retrieves block details of a specific block for a given burn chain height + operationId: get_block_by_burn_block_hash + summary: Get block by burnchain block hash tags: - Blocks - operationId: get_block_by_burn_block_height + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get + blocks](/api/get-blocks). + + Retrieves block details of a specific block for a given burnchain block hash + parameters: + - schema: + type: string + example: "0x00000000000000000002bba732926cf68b6eda3e2cdbc2a85af79f10efeeeb10" + in: path + name: burn_block_hash + required: true + description: Hash of the burnchain block + deprecated: true responses: - 200: - description: Block + "200": + description: A block content: application/json: schema: - $ref: ./entities/blocks/block.schema.json - example: - $ref: ./entities/blocks/block.example.json - 404: - description: Cannot find block with given height - content: - application/json: - example: - $ref: ./api/errors/block-not-found.example.json - + title: Block + description: A block + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + txs: + description: List of transactions included in the block + type: array + items: + description: Transaction ID + type: string + parent_microblock_hash: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every anchored + block will have a parent microblock stream. An anchored + block that does not have a parent microblock stream has + the parent microblock hash set to an empty string, and the + parent microblock sequence number set to -1. + type: string + parent_microblock_sequence: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every anchored + block will have a parent microblock stream. An anchored + block that does not have a parent microblock stream has + the parent microblock hash set to an empty string, and the + parent microblock sequence number set to -1. + type: integer + microblocks_accepted: + description: List of microblocks that were accepted in this anchor block. Not + every anchored block will have a accepted all (or any) of + the previously streamed microblocks. Microblocks that were + orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblocks_streamed: + description: List of microblocks that were streamed/produced by this anchor + block's miner. This list only includes microblocks that + were accepted in the following anchor block. Microblocks + that were orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblock_tx_count: + description: List of txs counts in each accepted microblock + type: object + additionalProperties: + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - txs + - parent_microblock_hash + - parent_microblock_sequence + - microblocks_accepted + - microblocks_streamed + - microblock_tx_count /extended/v1/burnchain/reward_slot_holders: get: + operationId: get_burnchain_reward_slot_holders summary: Get recent reward slot holders - description: Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments. tags: - Stacking Rewards - operationId: get_burnchain_reward_slot_holders + description: Retrieves a list of the Bitcoin addresses that would validly + receive Proof-of-Transfer commitments. parameters: - - name: limit - in: query - description: max number of items to fetch - required: false - schema: - type: integer + - schema: + minimum: 0 default: 96 maximum: 250 - - name: offset + title: Limit + type: integer in: query - description: index of the first items to fetch + name: limit required: false - schema: + description: max number of items to fetch + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 42000 + in: query + name: offset + required: false + description: Result offset responses: - 200: - description: List of burnchain reward recipients and amounts + "200": + description: Default Response content: application/json: schema: - $ref: ./api/burnchain/get-reward-slot-holders.schema.json - example: - $ref: ./api/burnchain/get-reward-slot-holders.example.json - + title: List of burnchain reward recipients and amounts + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: BurnchainRewardSlotHolder + description: Reward slot holder on the burnchain + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical burchchain tip + type: boolean + burn_block_hash: + description: The hash representing the burnchain block + type: string + burn_block_height: + description: Height of the burnchain block + type: integer + address: + description: The recipient address that validly received PoX commitments, in the + format native to the burnchain (e.g. B58 encoded for + Bitcoin) + type: string + slot_index: + description: The index position of the reward entry, useful for ordering when + there's more than one slot per burnchain block + type: integer + required: + - canonical + - burn_block_hash + - burn_block_height + - address + - slot_index + required: + - limit + - offset + - total + - results /extended/v1/burnchain/reward_slot_holders/{address}: get: + operationId: get_burnchain_reward_slot_holders_by_address summary: Get recent reward slot holder entries for the given address - description: Retrieves a list of the Bitcoin addresses that would validly receive Proof-of-Transfer commitments for a given reward slot holder recipient address. tags: - Stacking Rewards - operationId: get_burnchain_reward_slot_holders_by_address + description: Retrieves a list of the Bitcoin addresses that would validly + receive Proof-of-Transfer commitments for a given reward slot holder + recipient address. parameters: - - name: address - in: path - description: Reward slot holder recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format - required: true - schema: - type: string - example: "36hQtSEXBMevo5chpxhfAGiCTSC34QKgda" - - name: limit + - schema: + minimum: 0 + default: 96 + maximum: 250 + title: Limit + type: integer in: query - description: max number of items to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - - name: offset in: query - description: index of the first items to fetch + name: offset required: false - schema: - type: integer - example: 42000 + description: Result offset + - schema: + type: string + example: 36hQtSEXBMevo5chpxhfAGiCTSC34QKgda + in: path + name: address + required: true + description: Reward slot holder recipient address. Should either be in the + native burnchain's format (e.g. B58 for Bitcoin), or if a STX + principal address is provided it will be encoded as into the + equivalent burnchain format responses: - 200: + "200": description: List of burnchain reward recipients and amounts content: application/json: schema: - $ref: ./api/burnchain/get-reward-slot-holders.schema.json - example: - $ref: ./api/burnchain/get-reward-slot-holders.example.json - + title: BurnchainRewardSlotHolderListResponse + description: List of burnchain reward recipients and amounts + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: BurnchainRewardSlotHolder + description: Reward slot holder on the burnchain + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical burchchain tip + type: boolean + burn_block_hash: + description: The hash representing the burnchain block + type: string + burn_block_height: + description: Height of the burnchain block + type: integer + address: + description: The recipient address that validly received PoX commitments, in the + format native to the burnchain (e.g. B58 encoded for + Bitcoin) + type: string + slot_index: + description: The index position of the reward entry, useful for ordering when + there's more than one slot per burnchain block + type: integer + required: + - canonical + - burn_block_hash + - burn_block_height + - address + - slot_index + required: + - limit + - offset + - total + - results /extended/v1/burnchain/rewards: get: + operationId: get_burnchain_reward_list summary: Get recent burnchain reward recipients - description: Retrieves a list of recent burnchain (e.g. Bitcoin) reward recipients with the associated amounts and block info tags: - Stacking Rewards - operationId: get_burnchain_reward_list + description: Retrieves a list of recent burnchain (e.g. Bitcoin) reward + recipients with the associated amounts and block info parameters: - - name: limit - in: query - description: max number of rewards to fetch - required: false - schema: - type: integer + - schema: + minimum: 0 default: 96 maximum: 250 - - name: offset + title: Limit + type: integer in: query - description: index of first rewards to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 42000 + in: query + name: offset + required: false + description: Result offset responses: - 200: + "200": description: List of burnchain reward recipients and amounts content: application/json: schema: - $ref: ./api/burnchain/get-rewards.schema.json - example: - $ref: ./api/burnchain/get-rewards.example.json + description: List of burnchain reward recipients and amounts + type: object + properties: + limit: + type: integer + offset: + type: integer + results: + type: array + items: + title: BurnchainReward + description: Reward payment made on the burnchain + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical burchchain tip + type: boolean + burn_block_hash: + description: The hash representing the burnchain block + type: string + burn_block_height: + description: Height of the burnchain block + type: integer + burn_amount: + description: The total amount of burnchain tokens burned for this burnchain + block, in the smallest unit (e.g. satoshis for + Bitcoin) + type: string + reward_recipient: + description: The recipient address that received the burnchain rewards, in the + format native to the burnchain (e.g. B58 encoded for + Bitcoin) + type: string + reward_amount: + description: The amount of burnchain tokens rewarded to the recipient, in the + smallest unit (e.g. satoshis for Bitcoin) + type: string + reward_index: + description: The index position of the reward entry, useful for ordering when + there's more than one recipient per burnchain block + type: integer + required: + - canonical + - burn_block_hash + - burn_block_height + - burn_amount + - reward_recipient + - reward_amount + - reward_index + required: + - limit + - offset + - results /extended/v1/burnchain/rewards/{address}: get: + operationId: get_burnchain_reward_list_by_address summary: Get recent burnchain reward for the given recipient - description: Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the given recipient with the associated amounts and block info tags: - Stacking Rewards - operationId: get_burnchain_reward_list_by_address + description: Retrieves a list of recent burnchain (e.g. Bitcoin) rewards for the + given recipient with the associated amounts and block info parameters: - - name: address - in: path - description: Reward recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format - required: true - schema: - type: string - example: "36hQtSEXBMevo5chpxhfAGiCTSC34QKgda" - - name: limit + - schema: + minimum: 0 + default: 96 + maximum: 250 + title: Limit + type: integer in: query - description: max number of rewards to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - - name: offset in: query - description: index of first rewards to fetch + name: offset required: false - schema: - type: integer - example: 42000 + description: Result offset + - schema: + type: string + example: 36hQtSEXBMevo5chpxhfAGiCTSC34QKgda + in: path + name: address + required: true + description: Reward recipient address. Should either be in the native + burnchain's format (e.g. B58 for Bitcoin), or if a STX principal + address is provided it will be encoded as into the equivalent + burnchain format responses: - 200: + "200": description: List of burnchain reward recipients and amounts content: application/json: schema: - $ref: ./api/burnchain/get-rewards.schema.json - example: - $ref: ./api/burnchain/get-rewards.example.json + description: List of burnchain reward recipients and amounts + type: object + properties: + limit: + type: integer + offset: + type: integer + results: + type: array + items: + title: BurnchainReward + description: Reward payment made on the burnchain + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical burchchain tip + type: boolean + burn_block_hash: + description: The hash representing the burnchain block + type: string + burn_block_height: + description: Height of the burnchain block + type: integer + burn_amount: + description: The total amount of burnchain tokens burned for this burnchain + block, in the smallest unit (e.g. satoshis for + Bitcoin) + type: string + reward_recipient: + description: The recipient address that received the burnchain rewards, in the + format native to the burnchain (e.g. B58 encoded for + Bitcoin) + type: string + reward_amount: + description: The amount of burnchain tokens rewarded to the recipient, in the + smallest unit (e.g. satoshis for Bitcoin) + type: string + reward_index: + description: The index position of the reward entry, useful for ordering when + there's more than one recipient per burnchain block + type: integer + required: + - canonical + - burn_block_hash + - burn_block_height + - burn_amount + - reward_recipient + - reward_amount + - reward_index + required: + - limit + - offset + - results /extended/v1/burnchain/rewards/{address}/total: get: + operationId: get_burnchain_rewards_total_by_address summary: Get total burnchain rewards for the given recipient - description: Retrieves the total burnchain (e.g. Bitcoin) rewards for a given recipient `address` tags: - Stacking Rewards - operationId: get_burnchain_rewards_total_by_address + description: Retrieves the total burnchain (e.g. Bitcoin) rewards for a given + recipient `address` parameters: - - name: address + - schema: + type: string + example: 36hQtSEXBMevo5chpxhfAGiCTSC34QKgda in: path - description: Reward recipient address. Should either be in the native burnchain's format (e.g. B58 for Bitcoin), or if a STX principal address is provided it will be encoded as into the equivalent burnchain format + name: address required: true - schema: - type: string - example: "36hQtSEXBMevo5chpxhfAGiCTSC34QKgda" - responses: - 200: - description: List of burnchain reward recipients and amounts - content: - application/json: - schema: - $ref: ./entities/burnchain/rewards-total.schema.json - example: - $ref: ./entities/burnchain/rewards-total.example.json - - /extended/v1/contract/{contract_id}: - get: - summary: Get contract info - description: Retrieves details of a contract with a given `contract_id` - tags: - - Smart Contracts - operationId: get_contract_by_id + description: Reward recipient address. Should either be in the native + burnchain's format (e.g. B58 for Bitcoin), or if a STX principal + address is provided it will be encoded as into the equivalent + burnchain format responses: - 200: - description: Contract found + "200": + description: Total burnchain rewards made to a recipient content: application/json: schema: - $ref: ./entities/contracts/smart-contract.schema.json - example: - $ref: ./entities/contracts/smart-contract.example.json - 404: - description: Cannot find contract of given ID - parameters: - - name: contract_id - in: path - description: Contract identifier formatted as `.` - required: true - schema: - type: string - example: "SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles" - - name: unanchored - in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks - required: false - schema: - type: boolean - example: true - default: false - - /extended/v1/contract/by_trait: + title: BurnchainRewardsTotal + description: Total burnchain rewards made to a recipient + type: object + properties: + reward_recipient: + description: The recipient address that received the burnchain rewards, in the + format native to the burnchain (e.g. B58 encoded for + Bitcoin) + type: string + reward_amount: + description: The total amount of burnchain tokens rewarded to the recipient, in + the smallest unit (e.g. satoshis for Bitcoin) + type: string + required: + - reward_recipient + - reward_amount + /extended/v1/address/{principal}/stx: get: - summary: Get contracts by trait - description: Retrieves a list of contracts based on the following traits listed in JSON format - functions, variables, maps, fungible tokens and non-fungible tokens + operationId: get_account_stx_balance + summary: Get account STX balance tags: - - Smart Contracts - operationId: get_contracts_by_trait - responses: - 200: - description: List of contracts implement given trait - content: - application/json: - schema: - $ref: ./api/contract/smart-contract-list-response.schema.json - example: - $ref: ./api/contract/smart-contract-list-response.example.json + - Accounts + description: Retrieves STX token balance for a given Address or Contract Identifier. parameters: - - name: trait_abi - in: query - description: JSON abi of the trait. - required: true - schema: - type: string - - name: limit - in: query - description: max number of contracts fetch - required: false - schema: - type: integer - - name: offset + - schema: + default: false + type: boolean + example: true in: query - description: index of first contract event to fetch + name: unanchored required: false - example: 42000 - schema: - type: integer - - /extended/v1/contract/{contract_id}/events: - get: - summary: Get contract events - description: Retrieves a list of events that have been triggered by a given `contract_id` - tags: - - Smart Contracts - operationId: get_contract_events_by_id - parameters: - - name: contract_id - in: path - description: Contract identifier formatted as `.` - required: true - schema: + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: type: string - example: "SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C.satoshibles" - - name: limit - in: query - description: max number of contract events to fetch - required: false - schema: - type: integer - - name: offset - in: query - description: index of first contract event to fetch - required: false - schema: - type: integer - example: 42000 - - name: unanchored + examples: + "60000": + value: "60000" + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": + value: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks + name: until_block required: false - schema: - type: boolean - example: true - default: false - responses: - 200: - description: List of events - content: - application/json: - schema: - $ref: ./entities/transaction-events/transaction-event.schema.json - example: - $ref: ./entities/transaction-events/transaction-event-smart-contract-log.example.json - - /v2/contracts/interface/{contract_address}/{contract_name}: - get: - summary: Get contract interface - description: Retrieves a contract interface with a given `contract_address` and `contract name` - tags: - - Smart Contracts - operationId: get_contract_interface - responses: - 200: - description: Contract interface - content: - application/json: - schema: - $ref: ./api/core-node/get-contract-interface.schema.json - example: - $ref: ./api/core-node/get-contract-interface.example.json - parameters: - - name: contract_address - in: path - required: true - description: Stacks address - example: SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C - schema: - type: string - - name: contract_name - in: path - required: true - description: Contract name - schema: - type: string - example: "satoshibles" - - name: tip - in: query - schema: - type: string - description: The Stacks chain tip to query from - - /v2/map_entry/{contract_address}/{contract_name}/{map_name}: - post: - summary: Get specific data-map inside a contract - tags: - - Smart Contracts - operationId: get_contract_data_map_entry - description: | - Attempt to fetch data from a contract data map. The contract is identified with Stacks Address `contract_address` and Contract Name `contract_address` in the URL path. The map is identified with [Map Name]. - - The key to lookup in the map is supplied via the POST body. This should be supplied as the hex string serialization of the key (which should be a Clarity value). Note, this is a JSON string atom. - - In the response, `data` is the hex serialization of the map response. Note that map responses are Clarity option types, for non-existent values, this is a serialized none, and for all other responses, it is a serialized (some ...) object. - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/core-node/get-contract-data-map-entry.schema.json - example: - $ref: ./api/core-node/get-contract-data-map-entry.example.json - 400: - description: Failed loading data map - parameters: - - name: contract_address - in: path - required: true - description: Stacks address - schema: - type: string - example: "SPSCWDV3RKV5ZRN1FQD84YE1NQFEDJ9R1F4DYQ11" - - name: contract_name - in: path - required: true - description: Contract name - schema: + description: Block hash or block height. Return data representing the state up + until that point in time, rather than the current block. Note - Use + either of the query parameters but not both at a time. + - schema: type: string - example: newyorkcitycoin-core-v2 - - name: map_name + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 in: path + name: principal required: true - description: Map name - schema: - type: string - example: approved-contracts - - name: proof - in: query - description: Returns object without the proof field when set to 0 - schema: - type: integer - - name: tip - in: query - schema: - type: string - description: The Stacks chain tip to query from - x-codegen-request-body-name: key - requestBody: - description: Hex string serialization of the lookup key (which should be a Clarity value) - required: true - content: - application/json: - schema: - type: string - example: - $ref: ./entities/contracts/get-specific-data-map-inside-contract.example.json - - /v2/contracts/source/{contract_address}/{contract_name}: - get: - summary: Get contract source - tags: - - Smart Contracts - operationId: get_contract_source - description: Retrieves the Clarity source code of a given contract, along with the block height it was published in, and the MARF proof for the data - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/core-node/get-contract-source.schema.json - example: - $ref: ./api/core-node/get-contract-source.example.json - parameters: - - name: contract_address - in: path - required: true - description: Stacks address - schema: - type: string - example: "SP6P4EJF0VG8V0RB3TQQKJBHDQKEF6NVRD1KZE3C" - - name: contract_name - in: path - required: true - description: Contract name - schema: - type: string - example: satoshibles - - name: proof - in: query - description: Returns object without the proof field if set to 0 - schema: - type: integer - - name: tip - in: query - schema: - type: string - description: The Stacks chain tip to query from - required: false - - /v2/contracts/call-read/{contract_address}/{contract_name}/{function_name}: - post: - summary: Call read-only function - tags: - - Smart Contracts - operationId: call_read_only_function - description: | - Call a read-only public function on a given smart contract. - - The smart contract and function are specified using the URL path. The arguments and the simulated tx-sender are supplied via the POST body in the following JSON format: + description: Stacks address or a Contract identifier responses: - 200: - description: Success + "200": + description: GET request that returns address balances content: application/json: schema: - $ref: ./api/contract/post-call-read-only-fn.schema.json - examples: - success: - value: - $ref: ./api/contract/post-call-read-only-fn-success.example.json - fail: - value: - $ref: ./api/contract/post-call-read-only-fn-fail.example.json - parameters: - - name: contract_address - in: path - required: true - description: Stacks address - schema: - type: string - example: "SP187Y7NRSG3T9Z9WTSWNEN3XRV1YSJWS81C7JKV7" - - name: contract_name - in: path - required: true - description: Contract name - schema: - type: string - example: imaginary-friends-zebras - - name: function_name - in: path - required: true - description: Function name - schema: - type: string - example: get-token-uri - - name: tip - in: query - schema: - type: string - description: The Stacks chain tip to query from - required: false - requestBody: - description: map of arguments and the simulated tx-sender where sender is either a Contract identifier or a normal Stacks address, and arguments is an array of hex serialized Clarity values. - required: true - content: - application/json: - schema: - $ref: './entities/contracts/read-only-function-args.schema.json' - example: - $ref: './entities/contracts/read-only-function-args-request-body.example.json' - + title: AddressStxBalance + description: GET request that returns address balances + type: object + allOf: + - title: StxBalance + type: object + properties: + balance: + type: string + total_sent: + type: string + total_received: + type: string + total_fees_sent: + type: string + total_miner_rewards_received: + type: string + lock_tx_id: + description: The transaction where the lock event occurred. Empty if no tokens + are locked. + type: string + locked: + description: The amount of locked STX, as string quoted micro-STX. Zero if no + tokens are locked. + type: string + lock_height: + description: The STX chain block height of when the lock event occurred. Zero if + no tokens are locked. + type: integer + burnchain_lock_height: + description: The burnchain block height of when the lock event occurred. Zero if + no tokens are locked. + type: integer + burnchain_unlock_height: + description: The burnchain block height of when the tokens unlock. Zero if no + tokens are locked. + type: integer + required: + - balance + - total_sent + - total_received + - total_fees_sent + - total_miner_rewards_received + - lock_tx_id + - locked + - lock_height + - burnchain_lock_height + - burnchain_unlock_height + - type: object + properties: + token_offering_locked: + title: AddressTokenOfferingLocked + description: Token Offering Locked + type: object + properties: + total_locked: + description: Micro-STX amount still locked at current block height. + type: string + total_unlocked: + description: Micro-STX amount unlocked at current block height. + type: string + unlock_schedule: + type: array + items: + title: AddressUnlockSchedule + description: Unlock schedule amount and block height + type: object + properties: + amount: + description: Micro-STX amount locked at this block height. + type: string + block_height: + type: integer + required: + - amount + - block_height + required: + - total_locked + - total_unlocked + - unlock_schedule /extended/v1/address/{principal}/balances: get: + operationId: get_account_balance summary: Get account balances - description: Retrieves total account balance information for a given Address or Contract Identifier. This includes the balances of STX Tokens, Fungible Tokens and Non-Fungible Tokens for the account. tags: - Accounts - operationId: get_account_balance + description: Retrieves total account balance information for a given Address or + Contract Identifier. This includes the balances of STX Tokens, Fungible + Tokens and Non-Fungible Tokens for the account. parameters: - - name: principal - in: path - description: Stacks address or a Contract identifier - required: true - schema: - type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: unanchored - in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks - required: false - schema: - type: boolean - example: true + - schema: default: false - - name: until_block + type: boolean + example: true in: query - description: returned data representing the state up until that point in time, rather than the current block. + name: unanchored required: false - schema: - type: string - example: 60000 - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/address/get-address-balances.schema.json - example: - $ref: ./api/address/get-address-balances.example.json - - /extended/v1/address/{principal}/stx: - get: - summary: Get account STX balance - description: Retrieves STX token balance for a given Address or Contract Identifier. - tags: - - Accounts - operationId: get_account_stx_balance - parameters: - - name: principal - in: path - description: Stacks address or a Contract identifier. - required: true - schema: + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: unanchored - in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks. - required: false - schema: - type: boolean - example: true - default: false - - name: until_block + examples: + "60000": + value: "60000" + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": + value: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" in: query - description: returned data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. + name: until_block required: false - schema: + description: Block hash or block height. Return data representing the state up + until that point in time, rather than the current block. Note - Use + either of the query parameters but not both at a time. + - schema: type: string - example: 60000 + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + in: path + name: principal + required: true + description: Stacks address or a Contract identifier responses: - 200: - description: Success + "200": + description: GET request that returns address balances content: application/json: schema: - $ref: ./api/address/get-address-stx-balance.schema.json - example: - $ref: ./api/address/get-address-stx-balance.example.json - + title: AddressBalanceResponse + description: GET request that returns address balances + type: object + properties: + stx: + title: StxBalance + type: object + properties: + balance: + type: string + total_sent: + type: string + total_received: + type: string + total_fees_sent: + type: string + total_miner_rewards_received: + type: string + lock_tx_id: + description: The transaction where the lock event occurred. Empty if no tokens + are locked. + type: string + locked: + description: The amount of locked STX, as string quoted micro-STX. Zero if no + tokens are locked. + type: string + lock_height: + description: The STX chain block height of when the lock event occurred. Zero if + no tokens are locked. + type: integer + burnchain_lock_height: + description: The burnchain block height of when the lock event occurred. Zero if + no tokens are locked. + type: integer + burnchain_unlock_height: + description: The burnchain block height of when the tokens unlock. Zero if no + tokens are locked. + type: integer + required: + - balance + - total_sent + - total_received + - total_fees_sent + - total_miner_rewards_received + - lock_tx_id + - locked + - lock_height + - burnchain_lock_height + - burnchain_unlock_height + fungible_tokens: + type: object + additionalProperties: + title: FtBalance + type: object + properties: + balance: + type: string + total_sent: + type: string + total_received: + type: string + required: + - balance + - total_sent + - total_received + non_fungible_tokens: + type: object + additionalProperties: + title: NftBalance + type: object + properties: + count: + type: string + total_sent: + type: string + total_received: + type: string + required: + - count + - total_sent + - total_received + token_offering_locked: + title: AddressTokenOfferingLocked + description: Token Offering Locked + type: object + properties: + total_locked: + description: Micro-STX amount still locked at current block height. + type: string + total_unlocked: + description: Micro-STX amount unlocked at current block height. + type: string + unlock_schedule: + type: array + items: + title: AddressUnlockSchedule + description: Unlock schedule amount and block height + type: object + properties: + amount: + description: Micro-STX amount locked at this block height. + type: string + block_height: + type: integer + required: + - amount + - block_height + required: + - total_locked + - total_unlocked + - unlock_schedule + required: + - stx + - fungible_tokens + - non_fungible_tokens /extended/v1/address/{principal}/transactions: get: + operationId: get_account_transactions summary: Get account transactions - description: | - **NOTE:** This endpoint is deprecated in favor of [Get address transactions](/api/get-address-transactions). - - Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). - - If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. - deprecated: true tags: - Accounts - operationId: get_account_transactions + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get address + transactions](/api/get-address-transactions). + + Retrieves a list of all Transactions for a given Address or Contract Identifier. More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). + + If you need to actively monitor new transactions for an address or contract id, we highly recommend subscribing to [WebSockets or Socket.io](https://github.com/hirosystems/stacks-blockchain-api/tree/master/client) for real-time updates. parameters: - - name: principal - in: path - description: Stacks address or a Contract identifier - required: true - schema: - type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: limit + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer in: query - description: max number of account transactions to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 42000 - - name: offset in: query - description: index of first account transaction to fetch + name: offset required: false - schema: + description: Result offset + - schema: type: integer - example: 42000 - - name: height in: query - description: Filter for transactions only at this given block height + name: height required: false - schema: - type: number - example: 42000 - - name: unanchored + description: Filter for transactions only at this given block height + - schema: + default: false + type: boolean + example: true in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks + name: unanchored required: false - schema: - type: boolean - example: true - default: false - - name: until_block + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + type: string + examples: + "60000": + value: "60000" + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": + value: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" in: query - description: returned data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. + name: until_block required: false - schema: + description: Block hash or block height. Return data representing the state up + until that point in time, rather than the current block. Note - Use + either of the query parameters but not both at a time. + - schema: type: string - example: 60000 + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + in: path + name: principal + required: true + description: Stacks address or a Contract identifier + deprecated: true responses: - 200: - description: Success + "200": + description: GET request that returns account transactions content: application/json: schema: - $ref: ./api/address/get-address-transactions.schema.json - example: - $ref: ./api/address/get-address-transactions.example.json - + title: AddressTransactionsListResponse + description: GET request that returns account transactions + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - limit + - offset + - total + - results /extended/v1/address/{principal}/{tx_id}/with_transfers: get: + operationId: get_single_transaction_with_transfers summary: Get account transaction information for specific transaction - description: | - **NOTE:** This endpoint is deprecated in favor of [Get events for an address transaction](/api/get-address-transaction-events). - - Retrieves transaction details for a given Transaction Id `tx_id`, for a given account or contract Identifier. - deprecated: true tags: - Accounts - operationId: get_single_transaction_with_transfers + description: >- + **NOTE:** This endpoint is deprecated in favor of [Get events for an + address transaction](/api/get-address-transaction-events). + + Retrieves transaction details for a given Transaction Id `tx_id`, for a given account or contract Identifier. parameters: - - name: principal + - schema: + type: string + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 in: path - description: Stacks address or a contract identifier + name: principal required: true - schema: + description: Stacks address or a Contract identifier + - schema: type: string - example: "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE" - - name: tx_id + example: "0x34d79c7cfc2fe525438736733e501a4bf0308a5556e3e080d1e2c0858aad7448" in: path - description: Transaction id + name: tx_id required: true - schema: - type: string - example: "0x34d79c7cfc2fe525438736733e501a4bf0308a5556e3e080d1e2c0858aad7448" + description: Transaction ID + deprecated: true responses: - 200: - description: Success + "200": + description: Transaction with STX transfers for a given address content: application/json: schema: - $ref: ./entities/address/transaction-with-transfers.schema.json - example: - $ref: ./api/address/get-address-single-transaction-with-transfers.example.json - 404: - description: Not found - content: - application/json: - example: - $ref: ./api/errors/transaction-not-found.example.json - + title: AddressTransactionWithTransfers + description: Transaction with STX transfers for a given address + type: object + properties: + tx: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for `coinbase-to-alt-recipient` + transaction types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to 1, + and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other transaction + types, this will return a boolean indicating the + success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value will + be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then this + value will be 2147483647 (0x7fffffff, the max + int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + stx_sent: + description: Total sent from the given address, including the tx fee, in + micro-STX as an integer string. + type: string + stx_received: + description: Total received by the given address in micro-STX as an integer + string. + type: string + stx_transfers: + type: array + items: + type: object + properties: + amount: + description: Amount transferred in micro-STX as an integer string. + type: string + sender: + description: Principal that sent STX. This is unspecified if the STX were + minted. + type: string + recipient: + description: Principal that received STX. This is unspecified if the STX were + burned. + type: string + required: + - amount + ft_transfers: + type: array + items: + type: object + properties: + amount: + description: Amount transferred as an integer string. This balance does not + factor in possible SIP-010 decimals. + type: string + asset_identifier: + description: Fungible Token asset identifier. + type: string + sender: + description: Principal that sent the asset. + type: string + recipient: + description: Principal that received the asset. + type: string + required: + - amount + - asset_identifier + nft_transfers: + type: array + items: + type: object + properties: + value: + description: Non Fungible Token asset value. + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset_identifier: + description: Non Fungible Token asset identifier. + type: string + sender: + description: Principal that sent the asset. + type: string + recipient: + description: Principal that received the asset. + type: string + required: + - value + - asset_identifier + required: + - tx + - stx_sent + - stx_received + - stx_transfers /extended/v1/address/{principal}/transactions_with_transfers: get: + operationId: get_account_transactions_with_transfers summary: Get account transactions including STX transfers for each transaction. - description: Retrieve all transactions for an account or contract identifier including STX transfers for each transaction. - deprecated: true tags: - Accounts - operationId: get_account_transactions_with_transfers + description: Retrieve all transactions for an account or contract identifier + including STX transfers for each transaction. parameters: - - name: principal - in: path - description: Stacks address or a Contract identifier - required: true - schema: - type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: limit + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer in: query - description: max number of account transactions to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 20 - - name: offset in: query - description: index of first account transaction to fetch + name: offset required: false - schema: + description: Result offset + - schema: type: integer - example: 10 - - name: height in: query - description: Filter for transactions only at this given block height + name: height required: false - schema: - type: number - example: 66119 - - name: unanchored + description: Filter for transactions only at this given block height + - schema: + default: false + type: boolean + example: true in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks + name: unanchored required: false - schema: - type: boolean - example: true - default: false - - name: until_block + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + type: string + examples: + "60000": + value: "60000" + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": + value: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" in: query - description: returned data representing the state up until that point in time, rather than the current block. + name: until_block required: false - schema: + description: Block hash or block height. Return data representing the state up + until that point in time, rather than the current block. Note - Use + either of the query parameters but not both at a time. + - schema: type: string - example: 60000 + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + in: path + name: principal + required: true + description: Stacks address or a Contract identifier + deprecated: true responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/address/get-address-transactions-with-transfers.schema.json - example: - $ref: ./api/address/get-address-transactions-with-transfers.example.json - - /extended/v1/address/{principal}/nonces: + title: AddressTransactionsWithTransfersListResponse + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: AddressTransactionWithTransfers + description: Transaction with STX transfers for a given address + type: object + properties: + tx: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + stx_sent: + description: Total sent from the given address, including the tx fee, in + micro-STX as an integer string. + type: string + stx_received: + description: Total received by the given address in micro-STX as an integer + string. + type: string + stx_transfers: + type: array + items: + type: object + properties: + amount: + description: Amount transferred in micro-STX as an integer string. + type: string + sender: + description: Principal that sent STX. This is unspecified if the STX were + minted. + type: string + recipient: + description: Principal that received STX. This is unspecified if the STX were + burned. + type: string + required: + - amount + ft_transfers: + type: array + items: + type: object + properties: + amount: + description: Amount transferred as an integer string. This balance does not + factor in possible SIP-010 decimals. + type: string + asset_identifier: + description: Fungible Token asset identifier. + type: string + sender: + description: Principal that sent the asset. + type: string + recipient: + description: Principal that received the asset. + type: string + required: + - amount + - asset_identifier + nft_transfers: + type: array + items: + type: object + properties: + value: + description: Non Fungible Token asset value. + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset_identifier: + description: Non Fungible Token asset identifier. + type: string + sender: + description: Principal that sent the asset. + type: string + recipient: + description: Principal that received the asset. + type: string + required: + - value + - asset_identifier + required: + - tx + - stx_sent + - stx_received + - stx_transfers + required: + - limit + - offset + - total + - results + /extended/v1/address/{principal}/assets: get: - summary: Get the latest nonce used by an account - description: Retrieves the latest nonce values used by an account by inspecting the mempool, microblock transactions, and anchored transactions. + operationId: get_account_assets + summary: Get account assets tags: - Accounts - operationId: get_account_nonces + description: Retrieves a list of all assets events associated with an account or + a Contract Identifier. This includes Transfers, Mints. parameters: - - name: principal - in: path - description: Stacks address - required: true - schema: - type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: block_height + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer in: query - description: Optionally get the nonce at a given block height. + name: limit required: false - schema: - type: number - example: 66119 - - name: block_hash + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset + - schema: + default: false + type: boolean + example: true in: query - description: Optionally get the nonce at a given block hash. Note - Use either of the query parameters but not both at a time. + name: unanchored required: false - schema: + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: type: string - example: "0x72d53f3cba39e149dcd42708e535bdae03d73e60d2fe853aaf61c0b392f521e9" - + examples: + "60000": + value: "60000" + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": + value: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" + in: query + name: until_block + required: false + description: Block hash or block height. Return data representing the state up + until that point in time, rather than the current block. Note - Use + either of the query parameters but not both at a time. + - schema: + type: string + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + in: path + name: principal + required: true + description: Stacks address or a Contract identifier responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./entities/address/address-nonces.schema.json - example: - $ref: ./entities/address/address-nonces.example.json - - /extended/v1/address/{principal}/assets: + title: AddressAssetsListResponse + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + required: + - limit + - offset + - total + - results + /extended/v1/address/{principal}/stx_inbound: get: - summary: Get account assets - description: Retrieves a list of all assets events associated with an account or a Contract Identifier. This includes Transfers, Mints. + operationId: get_account_inbound + summary: Get inbound STX transfers tags: - Accounts - operationId: get_account_assets + description: >- + Retrieves a list of STX transfers with memos to the given principal. + This includes regular transfers from a stx-transfer transaction type, + and transfers from contract-call transactions a the `send-many-memo` bulk sending contract. parameters: - - name: principal - in: path - description: Stacks address or a Contract identifier - required: true - schema: - type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: limit + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer in: query - description: max number of account assets to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 20 - - name: offset in: query - description: index of first account assets to fetch + name: offset required: false - schema: + description: Result offset + - schema: type: integer - example: 42000 - - name: unanchored in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks + name: height required: false - schema: - type: boolean - example: true + description: Filter for transactions only at this given block height + - schema: default: false - - name: until_block + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + type: string + examples: + "60000": + value: "60000" + "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79": + value: "0x4839a8b01cfb39ffcc0d07d3db31e848d5adf5279d529ed5062300b9f353ff79" in: query - description: returned data representing the state at that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. + name: until_block required: false - schema: + description: Block hash or block height. Return data representing the state up + until that point in time, rather than the current block. Note - Use + either of the query parameters but not both at a time. + - schema: type: string - example: 60000 + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + in: path + name: principal + required: true + description: Stacks address or a Contract identifier responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/address/get-address-assets.schema.json - example: - $ref: ./api/address/get-address-assets.example.json - - /extended/v1/address/{principal}/stx_inbound: + title: AddressStxInboundListResponse + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: InboundStxTransfer + type: object + properties: + sender: + description: Principal that sent this transfer + type: string + amount: + description: Transfer amount in micro-STX as integer string + type: string + memo: + description: Hex encoded memo bytes associated with the transfer + type: string + block_height: + description: Block height at which this transfer occurred + type: integer + tx_id: + description: The transaction ID in which this transfer occurred + type: string + transfer_type: + description: Indicates if the transfer is from a stx-transfer transaction or a + contract-call transaction + anyOf: + - type: string + enum: + - bulk-send + - type: string + enum: + - stx-transfer + - type: string + enum: + - stx-transfer-memo + tx_index: + description: Index of the transaction within a block + type: integer + required: + - sender + - amount + - memo + - block_height + - tx_id + - transfer_type + - tx_index + required: + - limit + - offset + - total + - results + /extended/v1/address/{principal}/mempool: get: - summary: Get inbound STX transfers - description: | - Retrieves a list of STX transfers with memos to the given principal. This includes regular transfers from a stx-transfer transaction type, - and transfers from contract-call transactions a the `send-many-memo` bulk sending contract. + operationId: get_address_mempool_transactions + summary: Transactions for address tags: - - Accounts - operationId: get_account_inbound + - Transactions + description: Retrieves all transactions for a given address that are currently + in mempool parameters: - - name: principal - in: path - description: Stacks address or a Contract identifier - required: true - schema: - type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: limit - in: query - description: number of items to return - required: false - schema: + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit type: integer - - name: offset in: query - description: number of items to skip + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 42000 - - name: height in: query - description: Filter for transfers only at this given block height + name: offset required: false - schema: - type: number - - name: unanchored - in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks - required: false - schema: - type: boolean - example: true + description: Result offset + - schema: default: false - - name: until_block + type: boolean + example: true in: query - description: returned data representing the state up until that point in time, rather than the current block. Note - Use either of the query parameters but not both at a time. + name: unanchored required: false - schema: + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: type: string - example: 60000 + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + in: path + name: principal + required: true + description: Stacks address or a Contract identifier responses: - 200: - description: Success + "200": + description: List of mempool transactions content: application/json: schema: - $ref: ./api/address/get-address-stx-inbound.schema.json - example: - $ref: ./api/address/get-address-stx-inbound.example.json - - /v2/accounts/{principal}: + description: List of mempool transactions + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: TokenTransferMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - token_transfer + - title: SmartContractMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - smart_contract + - title: ContractCallMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - contract_call + - title: PoisonMicroblockMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - poison_microblock + - title: CoinbaseMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - coinbase_payload + - title: TenureChangeMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by the + node. + type: string + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - tenure_change_payload + required: + - limit + - offset + - total + - results + /extended/v1/address/{principal}/nonces: get: - summary: Get account info + operationId: get_account_nonces + summary: Get the latest nonce used by an account tags: - Accounts - operationId: get_account_info - description: | - Retrieves the account data for a given Account or a Contract Identifier - - Where balance is the hex encoding of a unsigned 128-bit integer (big-endian), nonce is an unsigned 64-bit integer, and the proofs are provided as hex strings. - - For non-existent accounts, this does not return a 404 error, rather it returns an object with balance and nonce of 0. + description: Retrieves the latest nonce values used by an account by inspecting + the mempool, microblock transactions, and anchored transactions. parameters: - - name: principal - in: path - description: Stacks address or a Contract identifier - required: true - schema: - type: string - example: "SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0" - - name: proof - in: query - description: Returns object without the proof field if set to 0 - schema: + - schema: + minimum: 1 type: integer - - name: tip + example: 66119 + in: query + name: block_height + required: false + description: Optionally get the nonce at a given block height. + - schema: + type: string + example: "0x72d53f3cba39e149dcd42708e535bdae03d73e60d2fe853aaf61c0b392f521e9" in: query - schema: + name: block_hash + required: false + description: Optionally get the nonce at a given block hash. Note - Use either + of the query parameters but not both at a time. + - schema: type: string - description: The Stacks chain tip to query from + example: SP31DA6FTSJX2WGTZ69SFY11BH51NZMB0ZW97B5P0 + in: path + name: principal + required: true + description: Stacks address or a Contract identifier responses: - 200: - description: Success + "200": + description: The latest nonce values used by an account by inspecting the + mempool, microblock transactions, and anchored transactions content: application/json: schema: - $ref: ./api/core-node/get-account-data.schema.json - example: - $ref: ./api/core-node/get-account-data.example.json - - /v2/fees/transfer: + title: AddressNonces + description: The latest nonce values used by an account by inspecting the + mempool, microblock transactions, and anchored transactions + type: object + properties: + last_mempool_tx_nonce: + anyOf: + - description: The latest nonce found within mempool transactions sent by this + address. Will be null if there are no current mempool + transactions for this address. + type: integer + - type: "null" + last_executed_tx_nonce: + anyOf: + - description: The latest nonce found within transactions sent by this address, + including unanchored microblock transactions. Will be + null if there are no current transactions for this + address. + type: integer + - type: "null" + possible_next_nonce: + description: The likely nonce required for creating the next transaction, based + on the last nonces seen by the API. This can be incorrect + if the API's mempool or transactions aren't fully + synchronized, even by a small amount, or if a previous + transaction is still propagating through the Stacks + blockchain network when this endpoint is called. + type: integer + detected_missing_nonces: + description: Nonces that appear to be missing and likely causing a mempool + transaction to be stuck. + type: array + items: + type: integer + detected_mempool_nonces: + description: Nonces currently in mempool for this address. + type: array + items: + type: integer + required: + - last_mempool_tx_nonce + - last_executed_tx_nonce + - possible_next_nonce + - detected_missing_nonces + - detected_mempool_nonces + /extended/v1/search/{id}: get: - summary: Get estimated fee + operationId: search_by_id + summary: Search tags: - - Fees - operationId: get_fee_transfer - description: Retrieves an estimated fee rate for STX transfer transactions. This a a fee rate / byte, and is returned as a JSON integer + - Search + description: Search blocks, transactions, contracts, or accounts by hash/ID + parameters: + - schema: + default: false + type: boolean + in: query + name: include_metadata + required: false + description: This includes the detailed data for purticular hash in the response + - schema: + type: string + example: "0xcf8b233f19f6c07d2dc1963302d2436efd36e9afac127bf6582824a13961c06d" + in: path + name: id + required: true + description: The hex hash string for a block or transaction, account address, or + contract address responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/core-node/get-fee-transfer.schema.json - example: - $ref: ./api/core-node/get-fee-transfer.example.json - - /v2/info: - get: - summary: Get Core API info - description: Retrieves information about the Core API including the server version - tags: - - Info - operationId: get_core_api_info - responses: - 200: - description: Success + type: object + properties: + found: + type: boolean + enum: + - true + result: + anyOf: + - title: AddressSearchResult + description: Address search result + type: object + properties: + entity_id: + description: The id used to search this query. + type: string + entity_type: + type: string + enum: + - standard_address + metadata: + title: AddressStxBalance + description: GET request that returns address balances + type: object + allOf: + - title: StxBalance + type: object + properties: + balance: + type: string + total_sent: + type: string + total_received: + type: string + total_fees_sent: + type: string + total_miner_rewards_received: + type: string + lock_tx_id: + description: The transaction where the lock event occurred. Empty if no tokens + are locked. + type: string + locked: + description: The amount of locked STX, as string quoted micro-STX. Zero if no + tokens are locked. + type: string + lock_height: + description: The STX chain block height of when the lock event occurred. Zero if + no tokens are locked. + type: integer + burnchain_lock_height: + description: The burnchain block height of when the lock event occurred. Zero if + no tokens are locked. + type: integer + burnchain_unlock_height: + description: The burnchain block height of when the tokens unlock. Zero if no + tokens are locked. + type: integer + required: + - balance + - total_sent + - total_received + - total_fees_sent + - total_miner_rewards_received + - lock_tx_id + - locked + - lock_height + - burnchain_lock_height + - burnchain_unlock_height + - type: object + properties: + token_offering_locked: + title: AddressTokenOfferingLocked + description: Token Offering Locked + type: object + properties: + total_locked: + description: Micro-STX amount still locked at current block height. + type: string + total_unlocked: + description: Micro-STX amount unlocked at current block height. + type: string + unlock_schedule: + type: array + items: + title: AddressUnlockSchedule + description: Unlock schedule amount and block height + type: object + properties: + amount: + description: Micro-STX amount locked at this block height. + type: string + block_height: + type: integer + required: + - amount + - block_height + required: + - total_locked + - total_unlocked + - unlock_schedule + required: + - entity_id + - entity_type + - title: BlockSearchResult + description: Block search result + type: object + properties: + entity_id: + description: The id used to search this query. + type: string + entity_type: + type: string + enum: + - block_hash + block_data: + type: object + properties: + canonical: + type: boolean + hash: + type: string + parent_block_hash: + type: string + burn_block_time: + type: integer + height: + type: integer + required: + - canonical + - hash + - parent_block_hash + - burn_block_time + - height + metadata: + title: Block + description: A block + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + txs: + description: List of transactions included in the block + type: array + items: + description: Transaction ID + type: string + parent_microblock_hash: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every + anchored block will have a parent microblock + stream. An anchored block that does not have a + parent microblock stream has the parent + microblock hash set to an empty string, and + the parent microblock sequence number set to + -1. + type: string + parent_microblock_sequence: + description: The hash of the last streamed block that precedes this block to + which this block is to be appended. Not every + anchored block will have a parent microblock + stream. An anchored block that does not have a + parent microblock stream has the parent + microblock hash set to an empty string, and + the parent microblock sequence number set to + -1. + type: integer + microblocks_accepted: + description: List of microblocks that were accepted in this anchor block. Not + every anchored block will have a accepted all + (or any) of the previously streamed + microblocks. Microblocks that were orphaned + are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblocks_streamed: + description: List of microblocks that were streamed/produced by this anchor + block's miner. This list only includes + microblocks that were accepted in the + following anchor block. Microblocks that were + orphaned are not included in this list. + type: array + items: + description: Microblock hash + type: string + microblock_tx_count: + description: List of txs counts in each accepted microblock + type: object + additionalProperties: + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - txs + - parent_microblock_hash + - parent_microblock_sequence + - microblocks_accepted + - microblocks_streamed + - microblock_tx_count + required: + - entity_id + - entity_type + - block_data + - title: ContractSearchResult + description: Contract search result + type: object + properties: + entity_id: + description: The id used to search this query. + type: string + entity_type: + type: string + enum: + - contract_address + tx_data: + type: object + properties: + canonical: + type: boolean + block_hash: + type: string + burn_block_time: + type: integer + block_height: + type: integer + tx_type: + type: string + tx_id: + type: string + required: + - tx_type + - tx_id + metadata: + anyOf: + - anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a + microblock) then this value will be an + empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in + an anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was + orphaned in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a + microblock) then this value will be an + empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in + an anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was + orphaned in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, + otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a + microblock) then this value will be an + empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in + an anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was + orphaned in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a + microblock) then this value will be an + empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in + an anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was + orphaned in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a + microblock) then this value will be an + empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in + an anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was + orphaned in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise + null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor + block (not included within a + microblock) then this value will be an + empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in + an anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was + orphaned in a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning + block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + - anyOf: + - title: TokenTransferMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - token_transfer + - title: SmartContractMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, + otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - smart_contract + - title: ContractCallMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - contract_call + - title: PoisonMicroblockMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - poison_microblock + - title: CoinbaseMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise + null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - coinbase_payload + - title: TenureChangeMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. + The nonce counts the number of times + an account's owner(s) have authorized + a transaction. The first transaction + from an account will have a nonce + value equal to 0, the second will have + a nonce value equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the + transaction MUST be included in a + microblock, `any`: the leader can + choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received + by the node. + type: string + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning + block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - tenure_change_payload + required: + - entity_id + - entity_type + - title: MempoolTxSearchResult + description: Mempool transaction search result + type: object + properties: + entity_id: + description: The id used to search this query. + type: string + entity_type: + type: string + enum: + - mempool_tx_id + tx_data: + type: object + properties: + tx_type: + type: string + required: + - tx_type + metadata: + anyOf: + - title: TokenTransferMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by + the node. + type: string + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - token_transfer + - title: SmartContractMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by + the node. + type: string + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - smart_contract + - title: ContractCallMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by + the node. + type: string + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - contract_call + - title: PoisonMicroblockMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by + the node. + type: string + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - poison_microblock + - title: CoinbaseMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by + the node. + type: string + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - coinbase_payload + - title: TenureChangeMempoolTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - pending + - type: string + enum: + - dropped_replace_by_fee + - type: string + enum: + - dropped_replace_across_fork + - type: string + enum: + - dropped_too_expensive + - type: string + enum: + - dropped_stale_garbage_collect + - type: string + enum: + - dropped_problematic + receipt_time: + description: A unix timestamp (in seconds) indicating when the transaction + broadcast was received by the node. + type: integer + receipt_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + the transaction broadcast was received by + the node. + type: string + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - tx_status + - receipt_time + - receipt_time_iso + - tx_type + - tenure_change_payload + required: + - entity_id + - entity_type + - tx_data + - title: TxSearchResult + description: Transaction search result + type: object + properties: + entity_id: + description: The id used to search this query. + type: string + entity_type: + type: string + enum: + - tx_id + tx_data: + type: object + properties: + canonical: + type: boolean + block_hash: + type: string + burn_block_time: + type: integer + block_height: + type: integer + tx_type: + type: string + required: + - canonical + - block_hash + - burn_block_time + - block_height + - tx_type + metadata: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then + this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in + a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then + this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in + a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then + this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in + a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then + this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in + a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then + this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in + a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to + 0, the second will have a nonce value + equal to 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: + the leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then + this value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in + a micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - entity_id + - entity_type + - tx_data + required: + - found + - result + "404": + description: Default Response content: application/json: schema: - $ref: ./api/core-node/get-info.schema.json - example: - $ref: ./api/core-node/get-info.example.json - - /extended: + type: object + properties: + found: + type: boolean + enum: + - false + result: + type: object + properties: + entity_type: + anyOf: + - type: string + enum: + - tx_id + - type: string + enum: + - mempool_tx_id + - type: string + enum: + - block_hash + - type: string + enum: + - standard_address + - type: string + enum: + - contract_address + - type: string + enum: + - unknown_hash + - type: string + enum: + - invalid_term + required: + - entity_type + error: + type: string + required: + - found + - result + - error + /extended/v1/{pox}/events: get: - summary: API status - description: Retrieves the running status of the Stacks Blockchain API, including the server version and current chain tip information. + summary: Get latest PoX events tags: - - Info - operationId: get_status + - Stacking + parameters: + - schema: + minimum: 0 + default: 96 + maximum: 200 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset + - schema: + anyOf: + - type: string + enum: + - pox2 + - type: string + enum: + - pox3 + - type: string + enum: + - pox4 + in: path + name: pox + required: true responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/info/get-status.schema.json - example: - $ref: ./api/info/get-status.example.json - - /extended/v1/info/network_block_times: + "200": + description: Default Response + /extended/v1/{pox}/tx/{tx_id}: get: + summary: Get PoX events for a transaction tags: - - Info - operationId: get_network_block_times - summary: Get the network target block time - description: Retrieves the target block times for mainnet and testnet. The block time is hardcoded and will change throughout the implementation phases of the testnet. + - Stacking + parameters: + - schema: + anyOf: + - type: string + enum: + - pox2 + - type: string + enum: + - pox3 + - type: string + enum: + - pox4 + in: path + name: pox + required: true + - schema: + type: string + in: path + name: tx_id + required: true responses: - 200: - description: Success - content: - application/json: - example: - $ref: ./api/info/get-network-block-times.example.json - schema: - $ref: ./api/info/get-network-block-times.schema.json - /extended/v1/info/network_block_time/{network}: + "200": + description: Default Response + /extended/v1/{pox}/stacker/{principal}: get: + summary: Get events for a stacking address tags: - - Info - operationId: get_network_block_time_by_network - summary: Get a given network's target block time - description: Retrieves the target block time for a given network. The network can be - mainnet or testnet. The block time is hardcoded and will change - throughout the implementation phases of the testnet. + - Stacking parameters: - - in: path - name: network + - schema: + anyOf: + - type: string + enum: + - pox2 + - type: string + enum: + - pox3 + - type: string + enum: + - pox4 + in: path + name: pox required: true - schema: + - schema: type: string - enum: [testnet, mainnet] - example: mainnet - description: the target block time for a given network (testnet, mainnet). + in: path + name: principal + required: true responses: - 200: - description: Success - content: - application/json: - example: - $ref: ./api/info/get-network-block-time-by-network.example.json - schema: - $ref: ./api/info/get-network-block-time-by-network.schema.json - - /extended/v1/stx_supply: + "200": + description: Default Response + /extended/v1/{pox}/{pool_principal}/delegations: get: + operationId: get_pool_delegations + summary: Stacking pool members tags: - - Info - operationId: get_stx_supply - summary: Get total and unlocked STX supply - description: | - Retrieves the total and unlocked STX supply. More information on Stacking can be found [here] (https://docs.stacks.co/understand-stacks/stacking). - **Note:** This uses the estimated future total supply for the year 2050. + - Stacking + description: Retrieves the list of stacking pool members for a given delegator + principal. parameters: - - in: query + - schema: + minimum: 0 + default: 100 + maximum: 200 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset + - schema: + minimum: 1 + type: integer + in: query + name: after_block + required: false + description: If specified, only delegation events after the given block will be + included + - schema: + minimum: 1 + type: integer + in: query name: height required: false - schema: - type: number - example: 200 - description: Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. Note that the `block height` is referred to the stacks blockchain. + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + anyOf: + - type: string + enum: + - pox2 + - type: string + enum: + - pox3 + - type: string + enum: + - pox4 + in: path + name: pox + required: true + - schema: + type: string + example: SPSCWDV3RKV5ZRN1FQD84YE1NQFEDJ9R1F4DYQ11 + in: path + name: pool_principal + required: true + description: Address principal of the stacking pool delegator responses: - 200: - description: Success + "200": + description: Default Response content: application/json: - example: - $ref: ./api/info/get-stx-supply.example.json schema: - $ref: ./api/info/get-stx-supply.schema.json - - /extended/v1/stx_supply/total/plain: - get: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + type: object + properties: + stacker: + description: The principal of the pool member that issued the delegation + type: string + pox_addr: + description: The pox-addr value specified by the stacker in the delegation + operation + type: string + amount_ustx: + description: The amount of uSTX delegated by the stacker + type: string + burn_block_unlock_height: + description: The optional burnchain block unlock height that the stacker may + have specified + type: integer + block_height: + description: The block height at which the stacker delegation transaction was + mined at + type: integer + tx_id: + description: The tx_id of the stacker delegation operation + type: string + required: + - stacker + - amount_ustx + - block_height + - tx_id + required: + - limit + - offset + - total + - results + /extended/v1/faucets/btc: + post: + operationId: run_faucet_btc + summary: Add testnet BTC tokens to address tags: - - Info - operationId: get_stx_supply_total_supply_plain - summary: Get total STX supply in plain text format - description: | - Retrieves the total supply for STX tokens as plain text. - **Note:** this uses the estimated future total supply for the year 2050. - responses: - 200: - description: success - content: - text/plain: - example: '123.456789' - schema: - $ref: ./api/info/get-stx-supply-total-plain.schema.json + - Faucets + description: >- + Add 1 BTC token to the specified testnet BTC address. - /extended/v1/stx_supply/circulating/plain: - get: - tags: - - Info - operationId: get_stx_supply_circulating_plain - summary: Get circulating STX supply in plain text format - description: Retrieves the STX tokens currently in circulation that have been unlocked as plain text. - responses: - 200: - description: success - content: - text/plain: - example: '123.456789' - schema: - $ref: ./api/info/get-stx-supply-circulating-plain.schema.json + The endpoint returns the transaction ID, which you can use to view the transaction in a testnet Bitcoin block + explorer. The tokens are delivered once the transaction has been included in a block. - /extended/v1/stx_supply/legacy_format: - get: - tags: - - Info - operationId: get_total_stx_supply_legacy_format - summary: Get total and unlocked STX supply (results formatted the same as the legacy 1.0 API) - description: | - Retrieves total supply of STX tokens including those currently in circulation that have been unlocked. - **Note:** this uses the estimated future total supply for the year 2050. + **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. + requestBody: + content: + application/json: + schema: + anyOf: + - type: object + properties: + address: + description: A valid testnet BTC address + examples: + - 2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts + type: string + - type: "null" parameters: - - in: query - name: height + - schema: + type: string + example: 2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts + in: query + name: address required: false - schema: - type: number - example: 200 - description: Supply details are queried from specified block height. If the block height is not specified, the latest block height is taken as default value. + description: A valid testnet BTC address responses: - 200: - description: Success + "200": + description: POST request that initiates a transfer of tokens to a specified + testnet address content: application/json: - example: - $ref: ./api/info/get-stx-supply-legacy-format.example.json schema: - $ref: ./api/info/get-stx-supply-legacy-format.schema.json - - /v2/pox: - get: - summary: Get Proof-of-Transfer details - description: Retrieves Proof-of-Transfer (PoX) information. Can be used for Stacking. - tags: - - Info - operationId: get_pox_info - responses: - 200: - description: Success + title: RunFaucetResponse + description: POST request that initiates a transfer of tokens to a specified + testnet address + type: object + properties: + success: + description: Indicates if the faucet call was successful + type: boolean + enum: + - true + txid: + description: The transaction ID for the faucet call + type: string + raw_tx: + description: Raw transaction in hex string representation + type: string + required: + - success + - txid + - raw_tx + 4XX: + description: Default Response content: application/json: schema: - $ref: ./api/core-node/get-pox.schema.json - example: - $ref: ./api/core-node/get-pox.example.json - - /extended/v1/search/{id}: + type: object + properties: + success: + type: boolean + enum: + - false + error: + description: Error message + type: string + required: + - success + - error + /extended/v1/faucets/btc/{address}: get: - summary: Search - description: Search blocks, transactions, contracts, or accounts by hash/ID + operationId: get_btc_balance + summary: Get BTC balance for address tags: - - Search + - Faucets parameters: - - in: path - name: id - required: true - schema: + - schema: type: string - example: "0xcf8b233f19f6c07d2dc1963302d2436efd36e9afac127bf6582824a13961c06d" - description: The hex hash string for a block or transaction, account address, or contract address - - in: query - name: include_metadata - schema: - type: boolean - description: This includes the detailed data for purticular hash in the response - operationId: search_by_id - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/search/search.schema.json - example: - $ref: ./api/search/search-contract.example.json - 404: - description: Not found - content: - application/json: - example: - $ref: ./api/errors/search-not-found.example.json - - /rosetta/v1/network/list: - post: - tags: - - Rosetta - summary: Get List of Available Networks - operationId: rosetta_network_list - description: Retrieves a list of NetworkIdentifiers that the Rosetta server supports. + example: 2N4M94S1ZPt8HfxydXzL2P7qyzgVq7MHWts + in: path + name: address + required: true + description: A valid testnet BTC address responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/rosetta/rosetta-network-list-response.schema.json - 400: - description: Error + type: object + properties: + balance: + description: Address balance in BTC + type: number + required: + - balance + 4XX: + description: Default Response content: application/json: schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - - /rosetta/v1/network/options: + type: object + properties: + success: + type: boolean + enum: + - false + error: + description: Error message + type: string + required: + - success + - error + /extended/v1/faucets/stx: post: + operationId: run_faucet_stx + summary: Get STX testnet tokens tags: - - Rosetta - summary: Get Network Options - operationId: rosetta_network_options - description: | - Retrieves the version information and allowed network-specific types for a NetworkIdentifier. - Any NetworkIdentifier returned by /network/list should be accessible here. - Because options are retrievable in the context of a NetworkIdentifier, it is possible to define unique options for each network. - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-network-options-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-network-options-request.schema.json - example: - $ref: ./api/rosetta/rosetta-account-network-options-request-body.example.json + - Faucets + description: >- + Add 500 STX tokens to the specified testnet address. Testnet STX + addresses begin with `ST`. If the `stacking` + parameter is set to `true`, the faucet will add the required number of tokens for individual stacking to the + specified testnet address. - /rosetta/v1/network/status: - post: - tags: - - Rosetta - summary: Get Network Status - operationId: rosetta_network_status - description: | - Retrieves the current status of the network requested. - Any NetworkIdentifier returned by /network/list should be accessible here. - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-network-status-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json + The endpoint returns the transaction ID, which you can use to view the transaction in the + [Stacks Explorer](https://explorer.hiro.so/?chain=testnet). The tokens are delivered once the transaction has + been included in an anchor block. + + A common reason for failed faucet transactions is that the faucet has run out of tokens. If you are experiencing + failed faucet transactions to a testnet address, you can get help in [Discord](https://stacks.chat). + + **Note:** This is a testnet only endpoint. This endpoint will not work on the mainnet. requestBody: - required: true content: application/json: schema: - $ref: ./api/rosetta/rosetta-network-status-request.schema.json - example: - $ref: ./api/rosetta/rosetta-account-network-options-request-body.example.json - - /rosetta/v1/account/balance: - post: - tags: - - Rosetta - summary: Get an Account Balance - operationId: rosetta_account_balance - description: | - An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. - If the block_identifier is populated, a historical balance query should be performed. + anyOf: + - type: object + properties: + address: + description: "[Deprecated -- use query param rather than POST body] A valid + testnet STX address" + examples: + - ST3M7N9Q9HDRM7RVP1Q26P0EE69358PZZAZD7KMXQ + type: string + - type: "null" + parameters: + - schema: + type: string + example: ST3M7N9Q9HDRM7RVP1Q26P0EE69358PZZAZD7KMXQ + in: query + name: address + required: false + description: A valid testnet STX address + - schema: + default: false + type: boolean + in: query + name: stacking + required: false + description: Request the amount of STX tokens needed for individual address + stacking responses: - 200: - description: Success + "200": + description: POST request that initiates a transfer of tokens to a specified + testnet address content: application/json: schema: - $ref: ./api/rosetta/rosetta-account-response.schema.json - 400: - description: Error + title: RunFaucetResponse + description: POST request that initiates a transfer of tokens to a specified + testnet address + type: object + properties: + success: + description: Indicates if the faucet call was successful + type: boolean + enum: + - true + txId: + description: The transaction ID for the faucet call + type: string + txRaw: + description: Raw transaction in hex string representation + type: string + required: + - success + - txId + - txRaw + 4XX: + description: Default Response content: application/json: schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-account-balance-request.schema.json - example: - $ref: ./api/rosetta/rosetta-account-balance-request-body.example.json - - /rosetta/v1/block: - post: + type: object + properties: + success: + description: Indicates if the faucet call was successful + type: boolean + enum: + - false + error: + description: Error message + type: string + help: + type: string + required: + - success + - error + /extended/v2/blocks/: + get: + operationId: get_blocks + summary: Get blocks tags: - - Rosetta - summary: Get a Block - operationId: rosetta_block - description: Retrieves the Block information for a given block identifier including a list of all transactions in the block. + - Blocks + description: Retrieves a list of recently mined blocks + parameters: + - schema: + minimum: 0 + default: 20 + maximum: 30 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-block-response.schema.json - 400: - description: Error + "200": + description: Default Response content: application/json: schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-block-request.schema.json - example: - $ref: ./api/rosetta/rosetta-block-request-body.example.json - - /rosetta/v1/block/transaction: - post: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + parent_index_block_hash: + description: Index block hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + tx_count: + description: Number of transactions included in the block + type: integer + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - parent_index_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - tx_count + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + required: + - limit + - offset + - total + - results + /extended/v2/blocks/average-times: + get: + operationId: get_average_block_times + summary: Get average block times tags: - - Rosetta - summary: Get a Block Transaction - operationId: rosetta_block_transaction - description: Retrieves a Transaction included in a block that is not returned in a BlockResponse. + - Blocks + description: Retrieves average block times (in seconds) responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-block-transaction-response.schema.json - 400: - description: Error + "200": + description: Default Response content: application/json: schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-block-transaction-request.schema.json - example: - $ref: ./api/rosetta/rosetta-block-transaction-request-body.example.json - - /rosetta/v1/mempool: - post: + type: object + properties: + last_1h: + description: Average block times over the last hour (in seconds) + type: number + last_24h: + description: Average block times over the last 24 hours (in seconds) + type: number + last_7d: + description: Average block times over the last 7 days (in seconds) + type: number + last_30d: + description: Average block times over the last 30 days (in seconds) + type: number + required: + - last_1h + - last_24h + - last_7d + - last_30d + /extended/v2/blocks/{height_or_hash}: + get: + operationId: get_block + summary: Get block tags: - - Rosetta - summary: Get All Mempool Transactions - operationId: rosetta_mempool - description: Retrieves a list of transactions currently in the mempool for a given network. + - Blocks + description: Retrieves a single block + parameters: + - schema: + anyOf: + - type: string + enum: + - latest + - pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Block hash + description: Block hash + examples: + - daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133 + type: string + - pattern: ^[0-9]+$ + title: Block height + description: Block height + examples: + - "777678" + type: string + in: path + name: height_or_hash + required: true responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-mempool-response.schema.json - 400: - description: Error + "200": + description: Default Response content: application/json: schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-mempool-request.schema.json - example: - $ref: ./api/rosetta/rosetta-account-network-options-request-body.example.json - - /rosetta/v1/mempool/transaction: - post: - tags: - - Rosetta - summary: Get a Mempool Transaction - operationId: rosetta_mempool_transaction - description: Retrieves transaction details from the mempool for a given transaction id from a given network. - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-mempool-transaction-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-mempool-transaction-request.schema.json - - /rosetta/v1/construction/derive: - post: - tags: - - Rosetta - summary: Derive an AccountIdentifier from a PublicKey - operationId: rosetta_construction_derive - description: Retrieves the Account Identifier information based on a Public Key for a given network - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-derive-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-derive-request.schema.json - example: - $ref: ./api/rosetta/rosetta-account-identifier-publickey-request-body.example.json - - /rosetta/v1/construction/hash: - post: - tags: - - Rosetta - summary: Get the Hash of a Signed Transaction - operationId: rosetta_construction_hash - description: Retrieves the network-specific transaction hash for a signed transaction. - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-hash-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-hash-request.schema.json - example: - $ref: ./api/rosetta/rosetta-hash-signed-transaction-request-schema-body.example.json - - /rosetta/v1/construction/metadata: - post: - tags: - - Rosetta - summary: Get Metadata for Transaction Construction - operationId: rosetta_construction_metadata - description: To Do - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-metadata-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-metadata-request.schema.json - example: - $ref: ./api/rosetta/rosetta-construction-metadata-request-schema-body.example.json - - /rosetta/v1/construction/parse: - post: - tags: - - Rosetta - summary: Parse a Transaction - operationId: rosetta_construction_parse - description: TODO - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-parse-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-parse-request.schema.json - - /rosetta/v1/construction/preprocess: - post: - tags: - - Rosetta - summary: Create a Request to Fetch Metadata - operationId: rosetta_construction_preprocess - description: TODO - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-preprocess-response.schema.json - - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-preprocess-request.schema.json - - /rosetta/v1/construction/submit: - post: - tags: - - Rosetta - summary: Submit a Signed Transaction - operationId: rosetta_construction_submit - description: Submit a pre-signed transaction to the node. The examples below are illustrative only. You'll need to use your wallet to generate actual values to use them in the request payload. - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-submit-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-submit-request.schema.json - example: - $ref: ./api/rosetta/rosetta-submit-signed-transaction-request.example.json - - /rosetta/v1/construction/payloads: - post: - tags: - - Rosetta - summary: Generate an Unsigned Transaction and Signing Payloads - operationId: rosetta_construction_payloads - description: Generate an unsigned transaction from operations and metadata. The examples below are illustrative only. You'll need to use your wallet to generate actual values to use them in the request payload. - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-payloads-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-payloads-request.schema.json - example: - $ref: ./api/rosetta/rosetta-submit-unsigned-transaction-unsigned-payloads-request.example.json - - /rosetta/v1/construction/combine: - post: - tags: - - Rosetta - summary: Create Network Transaction from Signatures - operationId: rosetta_construction_combine - description: Take unsigned transaction and signature, combine both and return signed transaction. The examples below are illustrative only. You'll need to use your wallet to generate actual values to use them in the request payload. - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-combine-response.schema.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./entities/rosetta/rosetta-error.schema.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/rosetta/rosetta-construction-combine-request.schema.json - example: - $ref: ./api/rosetta/rosetta-network-transaction-from-signarures-request.example.json - - /v2/prices/namespaces/{tld}: + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + parent_index_block_hash: + description: Index block hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + tx_count: + description: Number of transactions included in the block + type: integer + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - parent_index_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - tx_count + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + /extended/v2/blocks/{height_or_hash}/transactions: get: - summary: Get Namespace Price - description: Retrieves the price of a namespace. The `amount` given will be in the smallest possible units of the currency. + operationId: get_transactions_by_block + summary: Get transactions by block tags: - - Names - operationId: get_namespace_price + - Transactions + description: Retrieves transactions confirmed in a single block parameters: - - name: tld + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset + - schema: + anyOf: + - type: string + enum: + - latest + - pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Block hash + description: Block hash + examples: + - daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133 + type: string + - pattern: ^[0-9]+$ + title: Block height + description: Block height + examples: + - "777678" + type: string in: path - description: the namespace to fetch price for + name: height_or_hash required: true - schema: - type: string - example: id responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/namespace-operations/bns-get-namespace-price-response.schema.json - - /v2/prices/names/{name}: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a standard + principal or contract principal. Only + specified for + `coinbase-to-alt-recipient` transaction + types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a transaction + is processed at most once. The nonce counts the + number of times an account's owner(s) have + authorized a transaction. The first transaction + from an account will have a nonce value equal to + 0, the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction MUST be + included in a microblock, `any`: the leader can + choose where to include the transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a boolean + indicating the success of the transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block (not + included within a microblock) then this value + will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an anchor + block (not included within a microblock) then + this value will be 2147483647 (0x7fffffff, the + max int32 value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + required: + - limit + - offset + - total + - results + /extended/v2/burn-blocks/: get: - summary: Get Name Price - description: Retrieves the price of a name. The `amount` given will be in the smallest possible units of the currency. + operationId: get_burn_blocks + summary: Get burn blocks tags: - - Names - operationId: get_name_price + - Burn Blocks + description: Retrieves a list of recent burn blocks parameters: - - name: name - in: path - description: the name to query price information for - required: true - schema: - type: string - example: muneeb.id - responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/bns/name-querying/bns-get-name-price-response.schema.json - - /v1/namespaces: - get: - summary: Get All Namespaces - description: Retrieves a list of all namespaces known to the node. - tags: - - Names - operationId: get_all_namespaces + - schema: + minimum: 0 + default: 20 + maximum: 30 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/namespace-operations/bns-get-all-namespaces-response.schema.json - example: - $ref: ./api/bns/namespace-operations/bns-get-all-namespaces-response.example.json - - /v1/namespaces/{tld}/names: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + type: object + properties: + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + stacks_blocks: + description: Hashes of the Stacks blocks included in the burn block + type: array + items: + type: string + avg_block_time: + description: Average time between blocks in seconds. Returns 0 if there is only + one block in the burn block. + type: integer + total_tx_count: + description: Total number of transactions in the Stacks blocks associated with + this burn block + type: integer + required: + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - stacks_blocks + - avg_block_time + - total_tx_count + required: + - limit + - offset + - total + - results + /extended/v2/burn-blocks/{height_or_hash}: get: - summary: Get Namespace Names - description: Retrieves a list of names within a given namespace. + operationId: get_burn_block + summary: Get burn block tags: - - Names - operationId: get_namespace_names + - Burn Blocks + description: Retrieves a single burn block parameters: - - name: tld + - schema: + anyOf: + - type: string + enum: + - latest + - pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Burn block hash + description: Burn block hash + examples: + - 0000000000000000000452773967cdd62297137cdaf79950c5e8bb0c62075133 + type: string + - pattern: ^[0-9]+$ + title: Burn block height + description: Burn block height + examples: + - "777678" + type: string in: path - description: the namespace to fetch names from. + name: height_or_hash required: true - schema: - type: string - example: id - - name: page - in: query - description: namespace values are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter. - required: false - schema: - type: integer - example: 22 responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/bns/namespace-operations/bns-get-all-namespaces-names-response.schema.json - example: - $ref: ./api/bns/namespace-operations/bns-get-all-namespaces-names-response.example.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-invalid-page.example.json - 404: - description: Error + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-no-such-namespace.example.json - - /v1/names: + type: object + properties: + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + stacks_blocks: + description: Hashes of the Stacks blocks included in the burn block + type: array + items: + type: string + avg_block_time: + description: Average time between blocks in seconds. Returns 0 if there is only + one block in the burn block. + type: integer + total_tx_count: + description: Total number of transactions in the Stacks blocks associated with + this burn block + type: integer + required: + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - stacks_blocks + - avg_block_time + - total_tx_count + /extended/v2/burn-blocks/{height_or_hash}/blocks: get: - summary: Get All Names - description: Retrieves a list of all names known to the node. + operationId: get_blocks_by_burn_block + summary: Get blocks by burn block tags: - - Names - operationId: get_all_names + - Burn Blocks + description: Retrieves a list of blocks confirmed by a specific burn block parameters: - - name: page + - schema: + minimum: 0 + default: 20 + maximum: 30 + title: Limit + type: integer in: query - description: names are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter. + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 22 + in: query + name: offset + required: false + description: Result offset + - schema: + anyOf: + - type: string + enum: + - latest + - pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Burn block hash + description: Burn block hash + examples: + - 0000000000000000000452773967cdd62297137cdaf79950c5e8bb0c62075133 + type: string + - pattern: ^[0-9]+$ + title: Burn block height + description: Burn block height + examples: + - "777678" + type: string + in: path + name: height_or_hash + required: true responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/bns/name-querying/bns-get-all-names-response.schema.json - example: - $ref: ./api/bns/name-querying/bns-get-all-names-response.example.json - 400: - description: Error + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-invalid-page.example.json - - /v1/names/{name}: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + type: object + properties: + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + height: + description: Height of the block + type: integer + hash: + description: Hash representing the block + type: string + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + index_block_hash: + description: The only hash that can uniquely identify an anchored block or an + unconfirmed state trie + type: string + parent_block_hash: + description: Hash of the parent block + type: string + parent_index_block_hash: + description: Index block hash of the parent block + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_hash: + description: Hash of the anchor chain block + type: string + burn_block_height: + description: Height of the anchor chain block + type: integer + miner_txid: + description: Anchor chain transaction ID + type: string + tx_count: + description: Number of transactions included in the block + type: integer + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + required: + - canonical + - height + - hash + - block_time + - block_time_iso + - index_block_hash + - parent_block_hash + - parent_index_block_hash + - burn_block_time + - burn_block_time_iso + - burn_block_hash + - burn_block_height + - miner_txid + - tx_count + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + required: + - limit + - offset + - total + - results + /extended/v2/smart-contracts/status: get: - summary: Get Name Details - description: Retrieves details of a given name including the `address`, `status` and last transaction id - `last_txid`. + operationId: get_smart_contracts_status + summary: Get smart contracts status tags: - - Names - operationId: get_name_info + - Smart Contracts + description: Retrieves the deployment status of multiple smart contracts. parameters: - - name: name - in: path - description: fully-qualified name + - schema: + anyOf: + - type: array + items: + pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$ + title: Smart Contract ID + description: Smart Contract ID + examples: + - SP000000000000000000002Q6VF78.pox-3 + type: string + - pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$ + title: Smart Contract ID + description: Smart Contract ID + examples: + - SP000000000000000000002Q6VF78.pox-3 + type: string + in: query + name: contract_id required: true - schema: - type: string - example: muneeb.id responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/name-querying/bns-get-name-info.response.schema.json - example: - $ref: ./api/bns/name-querying/bns-get-name-info.response.example.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-invalid-name-subdomain.example.json - 404: - description: Error + type: object + additionalProperties: + anyOf: + - type: object + properties: + found: + const: true + type: boolean + result: + type: object + properties: + status: + description: Smart contract deployment transaction status + type: string + tx_id: + description: Deployment transaction ID + type: string + contract_id: + description: Smart contract ID + type: string + block_height: + description: Height of the transaction confirmation block + type: integer + required: + - status + - tx_id + - contract_id + required: + - found + - result + - type: object + properties: + found: + const: false + type: boolean + required: + - found + /extended/v2/mempool/fees: + get: + operationId: get_mempool_fee_priorities + summary: Get mempool transaction fee priorities + tags: + - Mempool + description: Returns estimated fee priorities (in micro-STX) for all + transactions that are currently in the mempool. Also returns priorities + separated by transaction type. + responses: + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-no-such-name.example.json - - /v1/names/{name}/subdomains: + type: object + properties: + all: + type: object + properties: + no_priority: + type: integer + low_priority: + type: integer + medium_priority: + type: integer + high_priority: + type: integer + required: + - no_priority + - low_priority + - medium_priority + - high_priority + token_transfer: + type: object + properties: + no_priority: + type: integer + low_priority: + type: integer + medium_priority: + type: integer + high_priority: + type: integer + required: + - no_priority + - low_priority + - medium_priority + - high_priority + contract_call: + type: object + properties: + no_priority: + type: integer + low_priority: + type: integer + medium_priority: + type: integer + high_priority: + type: integer + required: + - no_priority + - low_priority + - medium_priority + - high_priority + smart_contract: + type: object + properties: + no_priority: + type: integer + low_priority: + type: integer + medium_priority: + type: integer + high_priority: + type: integer + required: + - no_priority + - low_priority + - medium_priority + - high_priority + required: + - all + /extended/v2/pox/cycles: get: - summary: Get Name Subdomains - description: Retrieves the list of subdomains for a specific name + operationId: get_pox_cycles + summary: Get PoX cycles tags: - - Names - operationId: fetch_subdomains_list_for_name + - Proof of Transfer + description: Retrieves a list of PoX cycles parameters: - - name: name - in: path - description: fully-qualified name - required: true - schema: - type: string - example: id.blockstack + - schema: + minimum: 0 + default: 20 + maximum: 60 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/subdomains/subdomains-list.schema.json - example: - $ref: ./api/bns/subdomains/subdomains-list.example.json - - - /v1/names/{name}/zonefile: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + type: object + properties: + block_height: + type: integer + index_block_hash: + type: string + cycle_number: + type: integer + total_weight: + type: integer + total_stacked_amount: + type: string + total_signers: + type: integer + required: + - block_height + - index_block_hash + - cycle_number + - total_weight + - total_stacked_amount + - total_signers + required: + - limit + - offset + - total + - results + /extended/v2/pox/cycles/{cycle_number}: get: - summary: Get Zone File - description: Retrieves a user’s raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files. + operationId: get_pox_cycle + summary: Get PoX cycle tags: - - Names - operationId: fetch_zone_file + - Proof of Transfer + description: Retrieves details for a PoX cycle parameters: - - name: name + - schema: + type: integer in: path - description: fully-qualified name + name: cycle_number required: true - schema: - type: string - example: bar.test + description: PoX cycle number responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/bns/manage-names/bns-fetch-zone-file-response.schema.json - example: - $ref: ./api/bns/manage-names/bns-fetch-zone-file-response.example.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-invalid-name-subdomain.example.json - 404: - description: Error + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-no-zone-file.example.json - - /v1/names/{name}/zonefile/{zoneFileHash}: + type: object + properties: + block_height: + type: integer + index_block_hash: + type: string + cycle_number: + type: integer + total_weight: + type: integer + total_stacked_amount: + type: string + total_signers: + type: integer + required: + - block_height + - index_block_hash + - cycle_number + - total_weight + - total_stacked_amount + - total_signers + /extended/v2/pox/cycles/{cycle_number}/signers: get: - summary: Get Historical Zone File - description: Retrieves the historical zonefile specified by the username and zone hash. + operationId: get_pox_cycle_signers + summary: Get signers in PoX cycle tags: - - Names - operationId: get_historical_zone_file + - Proof of Transfer + description: Retrieves a list of signers in a PoX cycle parameters: - - name: name - in: path - description: fully-qualified name - required: true - schema: - type: string - example: muneeb.id - - name: zoneFileHash + - schema: + minimum: 0 + default: 100 + maximum: 250 + title: Limit + type: integer + in: query + name: limit + required: false + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset + type: integer + in: query + name: offset + required: false + description: Result offset + - schema: + type: integer in: path - description: zone file hash + name: cycle_number required: true - schema: - type: string - example: "b100a68235244b012854a95f9114695679002af9" + description: PoX cycle number responses: - 200: - description: Success + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/name-querying/bns-get-historical-zone-file-response.schema.json - example: - $ref: ./api/bns/name-querying/bns-get-historical-zone-file-response.example.json - 400: - description: Error - content: - application/json: - schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-invalid-name-subdomain.example.json - 404: - description: Error - content: - application/json: - schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-no-zone-file.example.json - - /v1/addresses/{blockchain}/{address}: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + type: object + properties: + signing_key: + type: string + signer_address: + description: The Stacks address derived from the signing_key. + type: string + weight: + type: integer + stacked_amount: + type: string + weight_percent: + type: number + stacked_amount_percent: + type: number + solo_stacker_count: + description: The number of solo stackers associated with this signer. + type: integer + pooled_stacker_count: + description: The number of pooled stackers associated with this signer. + type: integer + required: + - signing_key + - signer_address + - weight + - stacked_amount + - weight_percent + - stacked_amount_percent + - solo_stacker_count + - pooled_stacker_count + required: + - limit + - offset + - total + - results + /extended/v2/pox/cycles/{cycle_number}/signers/{signer_key}: get: - summary: Get Names Owned by Address - description: Retrieves a list of names owned by the address provided. + operationId: get_pox_cycle_signer + summary: Get signer in PoX cycle tags: - - Names - operationId: get_names_owned_by_address + - Proof of Transfer + description: Retrieves details for a signer in a PoX cycle parameters: - - name: blockchain + - schema: + type: integer in: path - description: the layer-1 blockchain for the address + name: cycle_number required: true - schema: + description: PoX cycle number + - schema: type: string - example: bitcoin - - name: address + example: "0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d" in: path - description: the address to lookup + name: signer_key required: true - schema: - type: string - example: "1QJQxDas5JhdiXhEbNS14iNjr8auFT96GP" + description: Signer key responses: - 200: - description: Success - content: - application/json: - schema: - $ref: ./api/bns/name-querying/bns-get-names-owned-by-address-response.schema.json - example: - $ref: ./api/bns/name-querying/bns-get-names-owned-by-address-response.example.json - 404: - description: Error + "200": + description: Default Response content: application/json: schema: - $ref: ./api/bns/errors/bns-error.schema.json - example: - $ref: ./api/bns/errors/bns-unsupported-blockchain.example.json - - /extended/v1/tx/block/{block_hash}: + type: object + properties: + signing_key: + type: string + signer_address: + description: The Stacks address derived from the signing_key. + type: string + weight: + type: integer + stacked_amount: + type: string + weight_percent: + type: number + stacked_amount_percent: + type: number + solo_stacker_count: + description: The number of solo stackers associated with this signer. + type: integer + pooled_stacker_count: + description: The number of pooled stackers associated with this signer. + type: integer + required: + - signing_key + - signer_address + - weight + - stacked_amount + - weight_percent + - stacked_amount_percent + - solo_stacker_count + - pooled_stacker_count + /extended/v2/pox/cycles/{cycle_number}/signers/{signer_key}/stackers: get: - deprecated: true - operationId: get_transactions_by_block_hash - summary: Transactions by block hash - description: | - **NOTE:** This endpoint is deprecated in favor of [Get transactions by block](/api/get-transactions-by-block). - - Retrieves a list of all transactions within a block for a given block hash. + operationId: get_pox_cycle_signer_stackers + summary: Get stackers for signer in PoX cycle tags: - - Transactions + - Proof of Transfer + description: Retrieves a list of stackers for a signer in a PoX cycle parameters: - - name: block_hash - in: path - description: Hash of block - required: true - schema: - type: string - example: "0x0a83d82a65460a9e711f85a44616350280040b75317dbe486a923c1131b5ff99" - - name: limit + - schema: + minimum: 0 + default: 100 + maximum: 200 + title: Limit + type: integer in: query - description: max number of transactions to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 10 - - name: offset in: query - description: index of first transaction to fetch + name: offset required: false - schema: + description: Result offset + - schema: type: integer - example: 42000 + in: path + name: cycle_number + required: true + description: PoX cycle number + - schema: + type: string + example: "0x038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d" + in: path + name: signer_key + required: true + description: Signer key responses: - 200: - description: List of Transactions + "200": + description: Default Response content: application/json: schema: - $ref: ./api/transaction/get-transactions.schema.json - example: - $ref: ./api/transaction/get-transactions.example.json - - /extended/v1/tx/block_height/{height}: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + type: object + properties: + stacker_address: + type: string + stacked_amount: + type: string + pox_address: + type: string + stacker_type: + anyOf: + - type: string + enum: + - solo + - type: string + enum: + - pooled + required: + - stacker_address + - stacked_amount + - pox_address + - stacker_type + required: + - limit + - offset + - total + - results + /extended/v2/addresses/{address}/transactions: get: - deprecated: true - operationId: get_transactions_by_block_height - summary: Transactions by block height - description: | - **NOTE:** This endpoint is deprecated in favor of [Get transactions by block](/api/get-transactions-by-block). - - Retrieves all transactions within a block at a given height + operationId: get_address_transactions + summary: Get address transactions tags: - Transactions + description: >- + Retrieves a paginated list of confirmed transactions sent or received by + a STX address or Smart Contract ID, alongside the total amount of STX + sent or received and the number of STX, FT and NFT transfers contained + within each transaction. + + More information on Transaction types can be found [here](https://docs.stacks.co/understand-stacks/transactions#types). parameters: - - name: height - in: path - description: Height of block - required: true - schema: - type: integer - example: 66119 - - name: limit - in: query - description: max number of transactions to fetch - required: false - schema: + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit type: integer - example: 10 - - name: offset in: query - description: index of first transaction to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 42000 - - name: unanchored in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks + name: offset required: false - schema: - type: boolean - example: true - default: false + description: Result offset + - schema: + anyOf: + - pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41} + title: STX Address + description: STX Address + examples: + - SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP + type: string + - pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$ + title: Smart Contract ID + description: Smart Contract ID + examples: + - SP000000000000000000002Q6VF78.pox-3 + type: string + in: path + name: address + required: true responses: - 200: - description: List of Transactions + "200": + description: Default Response content: application/json: schema: - $ref: ./api/transaction/get-transactions.schema.json - example: - $ref: ./api/transaction/get-transactions.example.json - - /extended/v1/address/{address}/mempool: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: AddressTransaction + description: Address transaction with STX, FT and NFT transfer summaries + type: object + properties: + tx: + anyOf: + - title: TokenTransferTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - token_transfer + token_transfer: + type: object + properties: + recipient_address: + type: string + amount: + description: Transfer amount as Integer string (64-bit unsigned integer) + type: string + memo: + description: Hex encoded arbitrary message, up to 34 bytes length (should try + decoding to an ASCII string) + type: string + required: + - recipient_address + - amount + - memo + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - token_transfer + - title: SmartContractTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - smart_contract + smart_contract: + type: object + properties: + clarity_version: + anyOf: + - description: The Clarity version of the contract, only specified for versioned + contract transactions, otherwise + null + type: number + - type: "null" + contract_id: + description: Contract identifier formatted as + `.` + type: string + source_code: + description: Clarity code of the smart contract being deployed + type: string + required: + - clarity_version + - contract_id + - source_code + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - smart_contract + - title: ContractCallTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - contract_call + contract_call: + type: object + properties: + contract_id: + description: Contract identifier formatted as + `.` + type: string + function_name: + description: Name of the Clarity function to be invoked + type: string + function_signature: + description: Function definition, including function name and type as well as + parameter names and types + type: string + function_args: + type: array + items: + additionalProperties: false + description: List of arguments used to invoke the function + type: object + properties: + hex: + type: string + repr: + type: string + name: + type: string + type: + type: string + required: + - hex + - repr + - name + - type + required: + - contract_id + - function_name + - function_signature + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - contract_call + - title: PoisonMicroblockTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - poison_microblock + poison_microblock: + type: object + properties: + microblock_header_1: + description: Hex encoded microblock header + type: string + microblock_header_2: + description: Hex encoded microblock header + type: string + required: + - microblock_header_1 + - microblock_header_2 + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - poison_microblock + - title: CoinbaseTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - coinbase + coinbase_payload: + type: object + properties: + data: + type: string + description: Hex encoded 32-byte scratch space for block leader's use + alt_recipient: + anyOf: + - description: A principal that will receive the miner rewards for this coinbase + transaction. Can be either a + standard principal or contract + principal. Only specified for + `coinbase-to-alt-recipient` + transaction types, otherwise null. + type: string + - type: "null" + vrf_proof: + anyOf: + - description: Hex encoded 80-byte VRF proof + type: string + - type: "null" + required: + - data + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - coinbase_payload + - title: TenureChangeTransaction + type: object + properties: + tx_id: + description: Transaction ID + type: string + nonce: + description: Used for ordering the transactions originating from and paying from + an account. The nonce ensures that a + transaction is processed at most once. The + nonce counts the number of times an + account's owner(s) have authorized a + transaction. The first transaction from an + account will have a nonce value equal to 0, + the second will have a nonce value equal to + 1, and so on. + type: integer + fee_rate: + description: Transaction fee as Integer string (64-bit unsigned integer). + type: string + sender_address: + description: Address of the transaction initiator + type: string + sponsor_nonce: + type: integer + sponsored: + description: Denotes whether the originating account is the same as the paying + account + type: boolean + sponsor_address: + type: string + post_condition_mode: + anyOf: + - type: string + enum: + - allow + - type: string + enum: + - deny + post_conditions: + type: array + items: + anyOf: + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - stx + required: + - principal + - condition_code + - amount + - type + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent_equal_to + - type: string + enum: + - sent_greater_than + - type: string + enum: + - sent_greater_than_or_equal_to + - type: string + enum: + - sent_less_than + - type: string + enum: + - sent_less_than_or_equal_to + amount: + type: string + type: + type: string + enum: + - fungible + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - amount + - type + - asset + - type: object + properties: + principal: + anyOf: + - type: object + properties: + type_id: + type: string + enum: + - principal_origin + required: + - type_id + - type: object + properties: + type_id: + type: string + enum: + - principal_standard + address: + type: string + required: + - type_id + - address + - type: object + properties: + type_id: + type: string + enum: + - principal_contract + address: + type: string + contract_name: + type: string + required: + - type_id + - address + - contract_name + condition_code: + anyOf: + - type: string + enum: + - sent + - type: string + enum: + - not_sent + type: + type: string + enum: + - non_fungible + asset_value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + asset: + type: object + properties: + asset_name: + type: string + contract_address: + type: string + contract_name: + type: string + required: + - asset_name + - contract_address + - contract_name + required: + - principal + - condition_code + - type + - asset_value + - asset + anchor_mode: + description: "`on_chain_only`: the transaction MUST be included in an anchored + block, `off_chain_only`: the transaction + MUST be included in a microblock, `any`: the + leader can choose where to include the + transaction." + anyOf: + - type: string + enum: + - on_chain_only + - type: string + enum: + - off_chain_only + - type: string + enum: + - any + block_hash: + description: Hash of the blocked this transactions was associated with + type: string + block_height: + description: Height of the block this transactions was associated with + type: integer + block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: number + block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when this block + was mined. + type: string + burn_block_time: + description: Unix timestamp (in seconds) indicating when this block was mined. + type: integer + burn_block_height: + description: Height of the anchor burn block. + type: integer + burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this block was mined. + type: string + parent_burn_block_time: + description: Unix timestamp (in seconds) indicating when this parent block was + mined + type: integer + parent_burn_block_time_iso: + description: An ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) timestamp indicating when + this parent block was mined. + type: string + canonical: + description: Set to `true` if block corresponds to the canonical chain tip + type: boolean + tx_index: + description: Index of the transaction, indicating the order. Starts at `0` and + increases with each transaction + type: integer + tx_status: + description: Status of the transaction + anyOf: + - type: string + enum: + - success + - type: string + enum: + - abort_by_response + - type: string + enum: + - abort_by_post_condition + tx_result: + description: Result of the transaction. For contract calls, this will show the + value returned by the call. For other + transaction types, this will return a + boolean indicating the success of the + transaction. + additionalProperties: false + type: object + properties: + hex: + description: Hex string representing the value fo the transaction result + type: string + repr: + description: Readable string of the transaction result + type: string + required: + - hex + - repr + event_count: + description: Number of transaction events + type: integer + parent_block_hash: + description: Hash of the previous block. + type: string + is_unanchored: + description: True if the transaction is included in a microblock that has not + been confirmed by an anchor block. + type: boolean + microblock_hash: + description: The microblock hash that this transaction was streamed in. If the + transaction was batched in an anchor block + (not included within a microblock) then this + value will be an empty string. + type: string + microblock_sequence: + description: The microblock sequence number that this transaction was streamed + in. If the transaction was batched in an + anchor block (not included within a + microblock) then this value will be + 2147483647 (0x7fffffff, the max int32 + value), this value preserves logical + transaction ordering on (block_height, + microblock_sequence, tx_index). + type: integer + microblock_canonical: + description: Set to `true` if microblock is anchored in the canonical chain tip, + `false` if the transaction was orphaned in a + micro-fork. + type: boolean + execution_cost_read_count: + description: Execution cost read count. + type: integer + execution_cost_read_length: + description: Execution cost read length. + type: integer + execution_cost_runtime: + description: Execution cost runtime. + type: integer + execution_cost_write_count: + description: Execution cost write count. + type: integer + execution_cost_write_length: + description: Execution cost write length. + type: integer + events: + type: array + items: + anyOf: + - title: SmartContractLogTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - smart_contract_log + tx_id: + type: string + contract_log: + type: object + properties: + contract_id: + type: string + topic: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - contract_id + - topic + - value + required: + - event_type + - tx_id + - contract_log + - title: StxLockTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_lock + tx_id: + type: string + stx_lock_event: + type: object + properties: + locked_amount: + type: string + unlock_height: + type: integer + locked_address: + type: string + required: + - locked_amount + - unlock_height + - locked_address + required: + - event_type + - tx_id + - stx_lock_event + - title: StxAssetTransactionEvent + description: Only present in `smart_contract` and `contract_call` tx types. + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - stx_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + sender: + type: string + recipient: + type: string + amount: + type: string + memo: + type: string + required: + - asset_event_type + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: FungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + amount: + type: string + required: + - asset_event_type + - asset_id + - sender + - recipient + - amount + required: + - event_type + - tx_id + - asset + - title: NonFungibleTokenAssetTransactionEvent + type: object + allOf: + - title: AbstractTransactionEvent + type: object + properties: + event_index: + type: integer + required: + - event_index + - type: object + properties: + event_type: + type: string + enum: + - non_fungible_token_asset + tx_id: + type: string + asset: + type: object + properties: + asset_event_type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_id: + type: string + sender: + type: string + recipient: + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + required: + - asset_event_type + - asset_id + - sender + - recipient + - value + required: + - event_type + - tx_id + - asset + tx_type: + type: string + enum: + - tenure_change + tenure_change_payload: + type: object + properties: + tenure_consensus_hash: + description: Consensus hash of this tenure. Corresponds to the sortition in + which the miner of this block was + chosen. + type: string + prev_tenure_consensus_hash: + description: Consensus hash of the previous tenure. Corresponds to the sortition + of the previous winning block-commit. + type: string + burn_view_consensus_hash: + description: Current consensus hash on the underlying burnchain. Corresponds to + the last-seen sortition. + type: string + previous_tenure_end: + description: (Hex string) Stacks Block hash + type: string + previous_tenure_blocks: + description: The number of blocks produced in the previous tenure. + type: integer + cause: + description: Cause of change in mining tenure. Depending on cause, tenure can be + ended or extended. + anyOf: + - type: string + enum: + - block_found + - type: string + enum: + - extended + pubkey_hash: + description: (Hex string) The ECDSA public key hash of the current tenure. + type: string + required: + - tenure_consensus_hash + - prev_tenure_consensus_hash + - burn_view_consensus_hash + - previous_tenure_end + - previous_tenure_blocks + - cause + - pubkey_hash + required: + - tx_id + - nonce + - fee_rate + - sender_address + - sponsored + - post_condition_mode + - post_conditions + - anchor_mode + - block_hash + - block_height + - block_time + - block_time_iso + - burn_block_time + - burn_block_height + - burn_block_time_iso + - parent_burn_block_time + - parent_burn_block_time_iso + - canonical + - tx_index + - tx_status + - tx_result + - event_count + - parent_block_hash + - is_unanchored + - microblock_hash + - microblock_sequence + - microblock_canonical + - execution_cost_read_count + - execution_cost_read_length + - execution_cost_runtime + - execution_cost_write_count + - execution_cost_write_length + - events + - tx_type + - tenure_change_payload + stx_sent: + description: Total sent from the given address, including the tx fee, in + micro-STX as an integer string. + type: string + stx_received: + description: Total received by the given address in micro-STX as an integer + string. + type: string + events: + type: object + properties: + stx: + type: object + properties: + transfer: + type: integer + mint: + type: integer + burn: + type: integer + required: + - transfer + - mint + - burn + ft: + type: object + properties: + transfer: + type: integer + mint: + type: integer + burn: + type: integer + required: + - transfer + - mint + - burn + nft: + type: object + properties: + transfer: + type: integer + mint: + type: integer + burn: + type: integer + required: + - transfer + - mint + - burn + required: + - stx + - ft + - nft + required: + - tx + - stx_sent + - stx_received + - events + required: + - limit + - offset + - total + - results + /extended/v2/addresses/{address}/transactions/{tx_id}/events: get: - operationId: get_address_mempool_transactions - summary: Transactions for address - description: Retrieves all transactions for a given address that are currently in mempool + operationId: get_address_transaction_events + summary: Get events for an address transaction tags: - Transactions + description: Retrieves a paginated list of all STX, FT and NFT events concerning + a STX address or Smart Contract ID within a specific transaction. parameters: - - name: address - in: path - description: Transactions for the address - required: true - schema: - type: string - example: "SP197DVH8KTJGX4STM61QN0WJV8Y9QJWXV83ZGNR9" - - name: limit - in: query - description: max number of transactions to fetch - required: false - schema: + - schema: + minimum: 0 + default: 20 + maximum: 50 + title: Limit type: integer - example: 90 - - name: offset in: query - description: index of first transaction to fetch + name: limit required: false - schema: + description: Results per page + - schema: + minimum: 0 + default: 0 + title: Offset type: integer - example: 42000 - - name: unanchored in: query - description: Include transaction data from unanchored (i.e. unconfirmed) microblocks + name: offset required: false - schema: - type: boolean - example: true - default: false + description: Result offset + - schema: + anyOf: + - pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41} + title: STX Address + description: STX Address + examples: + - SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP + type: string + - pattern: ^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$ + title: Smart Contract ID + description: Smart Contract ID + examples: + - SP000000000000000000002Q6VF78.pox-3 + type: string + in: path + name: address + required: true + - schema: + pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Transaction ID + type: string + example: "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6" + in: path + name: tx_id + required: true + description: Transaction ID responses: - 200: - description: List of Transactions + "200": + description: Default Response content: application/json: schema: - $ref: ./api/transaction/get-mempool-transactions.schema.json - example: - $ref: ./api/transaction/get-mempool-transactions.example.json - - /extended/v1/tokens/nft/holdings: + type: object + properties: + limit: + type: integer + example: 20 + offset: + type: integer + example: 0 + total: + type: integer + example: 1 + results: + type: array + items: + title: AddressTransactionEvent + description: Address Transaction Event + anyOf: + - type: object + properties: + type: + type: string + enum: + - stx + event_index: + type: integer + data: + type: object + properties: + type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + amount: + description: Amount transferred in micro-STX as an integer string. + type: string + sender: + description: Principal that sent STX. This is unspecified if the STX were + minted. + type: string + recipient: + description: Principal that received STX. This is unspecified if the STX were + burned. + type: string + required: + - type + - amount + required: + - type + - event_index + - data + - type: object + properties: + type: + type: string + enum: + - ft + event_index: + type: integer + data: + type: object + properties: + type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + amount: + description: Amount transferred as an integer string. This balance does not + factor in possible SIP-010 decimals. + type: string + asset_identifier: + description: Fungible Token asset identifier. + type: string + sender: + description: Principal that sent the asset. + type: string + recipient: + description: Principal that received the asset. + type: string + required: + - type + - amount + - asset_identifier + required: + - type + - event_index + - data + - type: object + properties: + type: + type: string + enum: + - nft + event_index: + type: integer + data: + type: object + properties: + type: + anyOf: + - type: string + enum: + - transfer + - type: string + enum: + - mint + - type: string + enum: + - burn + asset_identifier: + description: Non Fungible Token asset identifier. + type: string + value: + type: object + properties: + hex: + type: string + repr: + type: string + required: + - hex + - repr + sender: + description: Principal that sent the asset. + type: string + recipient: + description: Principal that received the asset. + type: string + required: + - type + - asset_identifier + - value + required: + - type + - event_index + - data + required: + - limit + - offset + - total + - results + /v1/names/{name}/zonefile/{zoneFileHash}: get: - operationId: get_nft_holdings - summary: Non-Fungible Token holdings - description: | - Retrieves the list of Non-Fungible Tokens owned by the given principal (STX address or Smart Contract ID). - Results can be filtered by one or more asset identifiers and can include metadata about the transaction that made the principal own each token. - - More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). + operationId: get_historical_zone_file + summary: Get Historical Zone File tags: - - Non-Fungible Tokens + - Names + description: Retrieves the historical zonefile specified by the username and + zone hash. parameters: - - name: principal - in: query - description: token owner's STX address or Smart Contract ID - required: true - schema: - type: string - example: "SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S.marketplace-v3" - - name: asset_identifiers - in: query - description: identifiers of the token asset classes to filter for - required: false - style: form - explode: true - schema: - type: array - example: "SPQZF23W7SEYBFG5JQ496NMY0G7379SRYEDREMSV.Candy::candy" - items: - type: string - - name: limit - in: query - description: max number of tokens to fetch - required: false - schema: - type: integer - default: 50 - - name: offset - in: query - description: index of first tokens to fetch - required: false - schema: - type: integer - default: 0 - example: 42000 - - name: unanchored - in: query - description: whether or not to include tokens from unconfirmed transactions - required: false - schema: - type: boolean - example: true + - schema: default: false - - name: tx_metadata + type: boolean + example: true in: query - description: whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. + name: unanchored required: false - schema: - type: boolean - default: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + type: string + example: muneeb.id + in: path + name: name + required: true + description: fully-qualified name + - schema: + type: string + example: b100a68235244b012854a95f9114695679002af9 + in: path + name: zoneFileHash + required: true + description: zone file hash responses: - 200: - description: List of Non-Fungible Token holdings + "200": + description: Fetches the historical zonefile specified by the username and zone + hash. content: application/json: schema: - $ref: ./api/tokens/get-non-fungible-token-holdings.schema.json - examples: - default: - value: - $ref: ./api/tokens/get-non-fungible-token-holdings.example.schema.json - with transaction metadata: - value: - $ref: ./api/tokens/get-non-fungible-token-holdings-tx-metadata.example.schema.json - - /extended/v1/tokens/nft/history: + title: BnsFetchHistoricalZoneFileResponse + description: Fetches the historical zonefile specified by the username and zone + hash. + type: object + properties: + zonefile: + type: string + required: + - zonefile + 4XX: + description: Error + content: + application/json: + schema: + title: BnsError + description: Error + type: object + properties: + error: + type: string + required: + - error + /v1/names/{name}/subdomains: get: - operationId: get_nft_history - summary: Non-Fungible Token history - description: | - Retrieves all events relevant to a Non-Fungible Token. Useful to determine the ownership history of a particular asset. - - More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). + operationId: fetch_subdomains_list_for_name + summary: Get Name Subdomains tags: - - Non-Fungible Tokens + - Names + description: Retrieves the list of subdomains for a specific name parameters: - - name: asset_identifier + - schema: + default: false + type: boolean + example: true in: query - description: token asset class identifier - required: true - schema: + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: type: string - example: "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild" - - name: value - in: query - description: hex representation of the token's unique value + example: id.blockstack + in: path + name: name required: true - schema: - type: string - example: "0x0100000000000000000000000000000803" - - name: limit - in: query - description: max number of events to fetch - required: false - schema: - type: integer - default: 50 - - name: offset - in: query - description: index of first event to fetch - required: false - schema: - type: integer - default: 0 - example: 42000 - - name: unanchored - in: query - description: whether or not to include events from unconfirmed transactions - required: false - schema: - type: boolean + description: fully-qualified name + responses: + "200": + description: Fetch a list of subdomains in a name. + content: + application/json: + schema: + title: GetAllSubdomainsInName + description: Fetch a list of subdomains in a name. + type: array + items: + type: string + example: + - address_test.id.blockstack + - previous_subdomain.id.blockstack + - subdomain.id.blockstack + - zonefile_test.id.blockstack + - zone_test.id.blockstack + /v1/names/{name}/zonefile: + get: + operationId: fetch_zone_file + summary: Get Zone File + tags: + - Names + description: Retrieves a user's raw zone file. This only works for RFC-compliant + zone files. This method returns an error for names that have + non-standard zone files. + parameters: + - schema: default: false - example: true - - name: tx_metadata + type: boolean + example: true in: query - description: whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. + name: unanchored required: false - schema: - type: boolean - default: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + type: string + example: bar.test + in: path + name: name + required: true + description: fully-qualified name responses: - 200: - description: Non-Fungible Token event history + "200": + description: Fetch a user's raw zone file. This only works for RFC-compliant + zone files. This method returns an error for names that have + non-standard zone files. content: application/json: schema: - $ref: ./api/tokens/get-non-fungible-token-history.schema.json - examples: - default: - value: - $ref: ./api/tokens/get-non-fungible-token-history.example.schema.json - with transaction metadata: - value: - $ref: ./api/tokens/get-non-fungible-token-history-tx-metadata.example.schema.json + title: BnsFetchFileZoneResponse + description: Fetch a user's raw zone file. This only works for RFC-compliant + zone files. This method returns an error for names that have + non-standard zone files. + type: object + properties: + zonefile: + type: string + example: > + $ORIGIN bar.test - /extended/v1/tokens/nft/mints: - get: - operationId: get_nft_mints - summary: Non-Fungible Token mints - description: | - Retrieves all mint events for a Non-Fungible Token asset class. Useful to determine which NFTs of a particular collection have been claimed. + $TTL 3600 - More information on Non-Fungible Tokens on the Stacks blockchain can be found [here](https://docs.stacks.co/write-smart-contracts/tokens#non-fungible-tokens-nfts). + _https._tcp URI 10 1 "https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json" + required: + - zonefile + 4XX: + description: Error + content: + application/json: + schema: + title: BnsError + description: Error + type: object + properties: + error: + type: string + example: Invalid name or subdomain + required: + - error + /v1/names/: + get: + operationId: get_all_names + summary: Get All Names tags: - - Non-Fungible Tokens + - Names + description: Retrieves a list of all names known to the node. parameters: - - name: asset_identifier - in: query - description: token asset class identifier - required: true - schema: - type: string - example: "SP2X0TZ59D5SZ8ACQ6YMCHHNR2ZN51Z32E2CJ173.the-explorer-guild::The-Explorer-Guild" - - name: limit - in: query - description: max number of events to fetch - required: false - schema: - type: integer - default: 50 - - name: offset - in: query - description: index of first event to fetch - required: false - schema: - type: integer - default: 0 - example: 42000 - - name: unanchored + - schema: + default: false + type: boolean + example: true in: query - description: whether or not to include events from unconfirmed transactions + name: unanchored required: false - schema: - type: boolean - example: true - default: false - - name: tx_metadata + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + minimum: 0 + default: 0 + type: integer in: query - description: whether or not to include the complete transaction metadata instead of just `tx_id`. Enabling this option can affect performance and response times. + name: page required: false - schema: - type: boolean - default: false + description: names are defaulted to page 1 with 100 results. You can query + specific page results by using the 'page' query parameter. responses: - 200: - description: Non-Fungible Token mints + "200": + description: Fetch a list of all names known to the node. content: application/json: schema: - $ref: ./api/tokens/get-non-fungible-token-mints.schema.json + title: BnsGetAllNamesResponse + description: Fetch a list of all names known to the node. + type: array + items: + type: string examples: - default: - value: - $ref: ./api/tokens/get-non-fungible-token-mints.example.schema.json - with transaction metadata: - value: - $ref: ./api/tokens/get-non-fungible-token-mints-tx-metadata.example.schema.json - - /extended/v1/tokens/ft/{token}/holders: + aldenquimby.id: + value: aldenquimby.id + aldeoryn.id: + value: aldeoryn.id + alderete.id: + value: alderete.id + aldert.id: + value: aldert.id + aldi.id: + value: aldi.id + aldighieri.id: + value: aldighieri.id + 4XX: + description: Error + content: + application/json: + schema: + title: BnsError + description: Error + type: object + properties: + error: + type: string + required: + - error + /v1/names/{name}: get: - operationId: get_ft_holders - summary: Fungible token holders - description: | - Retrieves the list of Fungible Token holders for a given token ID. Specify `stx` for the `token` parameter to get the list of STX holders. + operationId: get_name_info + summary: Get Name Details tags: - - Fungible Tokens + - Names + description: Retrieves details of a given name including the `address`, `status` + and last transaction id - `last_txid`. parameters: - - name: token + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + type: string + example: muneeb.id in: path - description: fungible token identifier + name: name required: true - schema: - type: string - examples: - stx: - value: stx - summary: STX token - ft: - value: SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc::aeUSDC - summary: fungible token + description: fully-qualified name responses: - 200: - description: Fungible Token holders + "200": + description: Get name details content: application/json: schema: - $ref: ./api/tokens/get-ft-holders.schema.json + title: BnsGetNameInfoResponse + description: Get name details + type: object + properties: + address: + type: string + blockchain: + type: string + example: stacks + expire_block: + minimum: 0 + type: integer + grace_period: + minimum: 0 + type: integer + last_txid: + type: string + resolver: + type: string + status: + type: string + zonefile: + type: string + zonefile_hash: + type: string + required: + - address + - blockchain + - last_txid + - status + - zonefile_hash example: - $ref: ./api/tokens/get-ft-holders.example.json + address: 1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs + blockchain: stacks + expire_block: 599266 + grace_period: false + last_txid: 1edfa419f7b83f33e00830bc9409210da6c6d1db60f99eda10c835aa339cad6b + renewal_deadline: 604266 + resolver: null + status: registered + zonefile: > + $ORIGIN muneeb.id - /extended/v1/fee_rate: - post: - operationId: fetch_fee_rate - summary: Fetch fee rate - deprecated: true - description: | - **NOTE:** This endpoint is deprecated in favor of [Get approximate fees for a given transaction](/api/get-approximate-fees-for-a-given-transaction). + $TTL 3600 - Retrieves estimated fee rate. + _http._tcp IN URI 10 1 "https://gaia.blockstack.org/hub/1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs/0/profile.json" + zonefile_hash: 37aecf837c6ae9bdc9dbd98a268f263dacd00361 + /v1/namespaces/: + get: + operationId: get_all_namespaces + summary: Get All Namespaces tags: - - Fees + - Names + description: Retrieves a list of all namespaces known to the node. + parameters: + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks responses: - 200: - description: Transaction fee rate + "200": + description: Default Response content: application/json: schema: - $ref: ./api/info/get-fee-rate-response.schema.json - example: - $ref: ./api/info/get-fee-rate-response.example.json - requestBody: - required: true - content: - application/json: - schema: - $ref: ./api/info/get-fee-rate-request.schema.json - example: - $ref: ./api/info/get-fee-rate-request.example.json - - /v2/fees/transaction: - post: - summary: Get approximate fees for a given transaction + type: object + properties: + namespaces: + title: BnsGetAllNamespacesResponse + description: Fetch a list of all namespaces known to the node. + type: array + items: + type: string + required: + - namespaces + /v1/namespaces/{tld}/names: + get: + operationId: get_namespace_names + summary: Get Namespace Names tags: - - Fees - description: | - Get an estimated fee for the supplied transaction. This - estimates the execution cost of the transaction, the current - fee rate of the network, and returns estimates for fee - amounts. - * `transaction_payload` is a hex-encoded serialization of - the TransactionPayload for the transaction. - * `estimated_len` is an optional argument that provides the - endpoint with an estimation of the final length (in bytes) - of the transaction, including any post-conditions and - signatures - - If the node cannot provide an estimate for the transaction - (e.g., if the node has never seen a contract-call for the - given contract and function) or if estimation is not - configured on this node, a 400 response is returned. - - The 400 response will be a JSON error containing a `reason` - field which can be one of the following: - * `DatabaseError` - this Stacks node has had an internal - database error while trying to estimate the costs of the - supplied transaction. - * `NoEstimateAvailable` - this Stacks node has not seen this - kind of contract-call before, and it cannot provide an - estimate yet. - * `CostEstimationDisabled` - this Stacks node does not perform - fee or cost estimation, and it cannot respond on this - endpoint. - - The 200 response contains the following data: - * `estimated_cost` - the estimated multi-dimensional cost of - executing the Clarity VM on the provided transaction. - * `estimated_cost_scalar` - a unitless integer that the Stacks - node uses to compare how much of the block limit is consumed - by different transactions. This value incorporates the - estimated length of the transaction and the estimated - execution cost of the transaction. The range of this integer - may vary between different Stacks nodes. In order to compute - an estimate of total fee amount for the transaction, this - value is multiplied by the same Stacks node's estimated fee - rate. - * `cost_scalar_change_by_byte` - a float value that indicates how - much the `estimated_cost_scalar` value would increase for every - additional byte in the final transaction. - * `estimations` - an array of estimated fee rates and total fees to - pay in microSTX for the transaction. This array provides a range of - estimates (default: 3) that may be used. Each element of the array - contains the following fields: - * `fee_rate` - the estimated value for the current fee - rates in the network - * `fee` - the estimated value for the total fee in - microSTX that the given transaction should pay. These - values are the result of computing: - `fee_rate` x `estimated_cost_scalar`. - If the estimated fees are less than the minimum relay - fee `(1 ustx x estimated_len)`, then that minimum relay - fee will be returned here instead. - - Note: If the final transaction's byte size is larger than - supplied to `estimated_len`, then applications should increase - this fee amount by: - `fee_rate` x `cost_scalar_change_by_byte` x (`final_size` - `estimated_size`) - operationId: post_fee_transaction - requestBody: - content: - application/json: - schema: - $ref: ./api/core-node/post-fee-transaction.schema.json - example: - $ref: ./api/core-node/post-fee-transaction.example.json + - Names + description: Retrieves a list of names within a given namespace. + parameters: + - schema: + type: number + example: 22 + in: query + name: page + required: false + description: namespace values are defaulted to page 1 with 100 results. You can + query specific page results by using the 'page' query parameter. + - schema: + default: false + type: boolean + example: true + in: query + name: unanchored + required: false + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: + type: string + example: id + in: path + name: tld + required: true + description: the namespace to fetch names from. responses: - 200: - description: Estimated fees for the transaction + "200": + description: Fetch a list of names from the namespace. content: application/json: schema: - $ref: ./api/core-node/post-fee-transaction-response.schema.json + title: BnsGetAllNamespacesNamesResponse + description: Fetch a list of names from the namespace. + type: array + items: + type: string example: - $ref: ./api/core-node/post-fee-transaction-response.example.json - /extended/v1/tx/events: + - aldenquimby.id + - aldeoryn.id + - alderete.id + - aldert.id + - aldi.id + - aldighieri.id + /v1/addresses/{blockchain}/{address}: get: - summary: Transaction Events - description: Retrieves the list of events filtered by principal (STX address or Smart Contract ID), transaction id or event types. - The list of event types is ('smart_contract_log', 'stx_lock', 'stx_asset', 'fungible_token_asset', 'non_fungible_token_asset'). + operationId: get_names_owned_by_address + summary: Get Names Owned by Address tags: - - Transactions - operationId: get_filtered_events + - Names + description: Retrieves a list of names owned by the address provided. parameters: - - name: tx_id + - schema: + default: false + type: boolean + example: true in: query - description: Hash of transaction + name: unanchored required: false - example: "0x29e25515652dad41ef675bd0670964e3d537b80ec19cf6ca6f1dd65d5bc642c5" - schema: + description: Include data from unanchored (i.e. unconfirmed) microblocks + - schema: type: string - - name: address - in: query - description: Stacks address or a Contract identifier - required: false - schema: + example: stacks + in: path + name: blockchain + required: true + description: the layer-1 blockchain for the address + - schema: type: string - example: "ST1HB64MAJ1MBV4CQ80GF01DZS4T1DSMX20ADCRA4" - - name: limit - in: query - description: number of items to return - required: false - schema: - type: integer - example: 100 - - name: offset - in: query - description: number of items to skip - required: false - schema: - type: integer - example: 42000 - - name: type - in: query - description: Filter the events on event type - required: false - style: form - explode: true - schema: - type: array - example: stx_lock - items: - type: string - enum: [smart_contract_log, stx_lock, stx_asset, fungible_token_asset, non_fungible_token_asset] + example: SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7 + in: path + name: address + required: true + description: the address to lookup responses: - 200: - description: Success + "200": + description: Retrieves a list of names owned by the address provided. content: application/json: schema: - $ref: ./api/transaction/get-transaction-events.schema.json - example: - $ref: ./api/transaction/get-transaction-events.example.json - /extended/beta/stacking/{pool_principal}/delegations: + title: BnsNamesOwnByAddressResponse + description: Retrieves a list of names owned by the address provided. + type: object + properties: + names: + type: array + items: + type: string + example: muneeb.id + required: + - names + /v2/prices/namespaces/{tld}: get: - summary: Stacking pool members - description: Retrieves the list of stacking pool members for a given delegator principal. + operationId: get_namespace_price + summary: Get Namespace Price tags: - - Stacking - operationId: get_pool_delegations + - Names + description: Retrieves the price of a namespace. The `amount` given will be in + the smallest possible units of the currency. parameters: - - name: pool_principal + - schema: + type: string + example: id in: path - description: Address principal of the stacking pool delegator + name: tld required: true - example: "SPSCWDV3RKV5ZRN1FQD84YE1NQFEDJ9R1F4DYQ11" - schema: + description: the namespace to fetch price for + responses: + "200": + description: Fetch price for namespace. + content: + application/json: + schema: + title: BnsGetNamespacePriceResponse + description: Fetch price for namespace. + type: object + properties: + units: + type: string + amount: + type: string + required: + - units + - amount + "400": + description: Error + content: + application/json: + schema: + title: BnsError + description: Error + type: object + properties: + error: + type: string + required: + - error + /v2/prices/names/{name}: + get: + operationId: get_name_price + summary: Get Name Price + tags: + - Names + description: Retrieves the price of a name. The `amount` given will be in the + smallest possible units of the currency. + parameters: + - schema: type: string - - name: after_block - in: query - description: If specified, only delegation events after the given block will be included - required: false - schema: - type: integer - - name: unanchored - in: query - description: whether or not to include Stackers from unconfirmed transactions - required: false - schema: - type: boolean - default: false - example: true - - name: limit - in: query - description: number of items to return - required: false - schema: - type: integer - example: 100 - default: 100 - maximum: 200 - - name: offset - in: query - description: number of items to skip - required: false - schema: - type: integer - example: 300 - default: 0 + example: muneeb.id + in: path + name: name + required: true + description: the name to query price information for responses: - 200: - description: Success + "200": + description: Fetch price for name. content: application/json: schema: - $ref: ./api/stacking/get-pool-delegations.schema.json - example: - $ref: ./api/stacking/get-pool-delegations.example.json + title: BnsGetNamePriceResponse + description: Fetch price for name. + type: object + properties: + units: + type: string + amount: + type: string + required: + - units + - amount + "400": + description: Error + content: + application/json: + schema: + title: BnsError + description: Error + type: object + properties: + error: + type: string + required: + - error +servers: + - url: https://api.hiro.so/ + description: mainnet +tags: + - name: Accounts + description: Read-only endpoints to obtain Stacks account details + externalDocs: + description: Stacks Documentation - Accounts + url: https://docs.stacks.co/understand-stacks/accounts + - name: Blocks + description: Read-only endpoints to obtain Stacks block details + - name: Burn Blocks + description: Read-only endpoints to obtain burn block details + - name: Faucets + description: Endpoints to request STX or BTC tokens (not possible on Mainnet) + - name: Fees + description: Read-only endpoints to obtain fee details + - name: Info + description: Read-only endpoints to obtain network, Proof-of-Transfer, Stacking, + STX token, and node information + - name: Microblocks + description: Read-only endpoints to obtain microblocks details + externalDocs: + description: Stacks Documentation - Microblocks + url: https://docs.stacks.co/understand-stacks/microblocks + - name: Names + description: Read-only endpoints realted to the Blockchain Naming System on Stacks + externalDocs: + description: Stacks Documentation - Blockchain Naming System + url: https://docs.stacks.co/build-apps/references/bns + - name: Non-Fungible Tokens + description: Read-only endpoints to obtain non-fungible token details + externalDocs: + description: Stacks Documentation - Tokens + url: https://docs.stacks.co/write-smart-contracts/tokens + - name: Rosetta + description: Endpoints to support the Rosetta API open blockchain standard + externalDocs: + description: Hiro Documentation - Rosetta Support + url: https://docs.hiro.so/get-started/stacks-blockchain-api#rosetta-support + - name: Search + description: Read-only endpoints to search for accounts, blocks, smart + contracts, and transactions + - name: Smart Contracts + description: Read-only endpoints to obtain Clarity smart contract details + externalDocs: + description: Stacks Documentation - Clarity Smart Contracts + url: https://docs.stacks.co/write-smart-contracts/overview + - name: Stacking Rewards + description: Read-only endpoints to obtain Stacking reward details + externalDocs: + description: Stacks Documentation - Stacking + url: https://docs.stacks.co/understand-stacks/stacking + - name: Transactions + description: Endpoints to obtain transaction details and to broadcast + transactions to the network + externalDocs: + description: Hiro Documentation - Transactions + url: https://docs.hiro.so/get-started/transactions + - name: Mempool + description: Endpoints to obtain Mempool information + - name: Proof of Transfer + description: Endpoints to get information about the Proof of Transfer consensus + mechanism +externalDocs: + url: https://github.com/hirosystems/stacks-blockchain-api + description: Source Repository diff --git a/docs/package.json b/docs/package.json index d96823760..cdc92e92a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -10,8 +10,8 @@ "test": "echo 'ok'", "generate:git-info": "npm run generate:git-info --prefix ..", "generate:openapi": "npm run generate:openapi --prefix ..", - "generate:docs": "redocly build-docs .tmp/openapi.yaml --output .tmp/index.html", - "generate:postman": "openapi2postmanv2 --spec .tmp/openapi.yaml --output .tmp/collection.json --options folderStrategy=Tags,requestParametersResolution=Example,exampleParametersResolution=Example,schemaFaker=false 2>/dev/null", + "generate:docs": "redocly build-docs openapi.yaml --output .tmp/index.html", + "generate:postman": "openapi2postmanv2 --spec openapi.yaml --output .tmp/collection.json --options folderStrategy=Tags,requestParametersResolution=Example,exampleParametersResolution=Example,schemaFaker=false 2>/dev/null", "deploy:docs": "npm run build && gulp deployDocs" }, "author": "@hirosystems", diff --git a/src/event-replay/parquet-based/helpers.ts b/src/event-replay/parquet-based/helpers.ts index c58a7b496..7edce468f 100644 --- a/src/event-replay/parquet-based/helpers.ts +++ b/src/event-replay/parquet-based/helpers.ts @@ -23,8 +23,7 @@ const createTimeTracker = (): TimeTracker => { } const start = process.hrtime.bigint(); return fn().finally(() => { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - duration!.totalTime += process.hrtime.bigint() - start; + duration.totalTime += process.hrtime.bigint() - start; }); }, trackSync(name: string, fn: () => T) { diff --git a/src/event-stream/event-server.ts b/src/event-stream/event-server.ts index 5bbe0bfdf..cc2b62a83 100644 --- a/src/event-stream/event-server.ts +++ b/src/event-stream/event-server.ts @@ -1079,7 +1079,7 @@ export async function startEventServer(opts: { server.once('error', error => { reject(error); }); - server.listen(eventPort, eventHost as string, () => { + server.listen(eventPort, eventHost, () => { resolve(); }); }); diff --git a/src/openapi-generator.ts b/src/openapi-generator.ts index d45864f2d..b0906ed53 100644 --- a/src/openapi-generator.ts +++ b/src/openapi-generator.ts @@ -17,9 +17,8 @@ async function generateOpenApiFiles() { await fastify.register(FastifySwagger, OpenApiSchemaOptions); await fastify.register(StacksApiRoutes); await fastify.ready(); - mkdirSync('./docs/.tmp', { recursive: true }); - writeFileSync('./docs/.tmp/openapi.yaml', fastify.swagger({ yaml: true })); - writeFileSync('./docs/.tmp/openapi.json', JSON.stringify(fastify.swagger(), null, 2)); + writeFileSync('./docs/openapi.yaml', fastify.swagger({ yaml: true })); + writeFileSync('./docs/openapi.json', JSON.stringify(fastify.swagger(), null, 2)); await fastify.close(); } From 90661fc1cbf477e0932eddec8bce7729caf486c6 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 8 Aug 2024 18:21:44 +0200 Subject: [PATCH 45/56] chore: fix unused exports lint --- src/api/controllers/cache-controller.ts | 38 +----------- src/api/controllers/db-controller.ts | 18 +++--- src/api/routes/v2/schemas.ts | 57 ------------------ src/api/schemas/entities/addresses.ts | 5 +- src/api/schemas/entities/balances.ts | 3 - src/api/schemas/entities/post-conditions.ts | 3 - src/api/schemas/entities/search.ts | 10 ++-- src/api/schemas/entities/smart-contracts.ts | 7 +-- src/api/schemas/entities/tokens.ts | 17 +----- .../schemas/entities/transaction-events.ts | 16 ++--- src/api/schemas/entities/transactions.ts | 58 +++++++++---------- src/api/schemas/params.ts | 2 +- src/pox-helpers.ts | 9 +-- src/rosetta/types.ts | 33 +++++------ 14 files changed, 69 insertions(+), 207 deletions(-) diff --git a/src/api/controllers/cache-controller.ts b/src/api/controllers/cache-controller.ts index fb17ba1e3..f6eb74487 100644 --- a/src/api/controllers/cache-controller.ts +++ b/src/api/controllers/cache-controller.ts @@ -22,7 +22,7 @@ const CACHE_CONTROL_MUST_REVALIDATE = 'public, no-cache, must-revalidate'; * state of the chain depending on the type of information being requested by the endpoint. * This entry will have an `ETag` string as the value. */ -export enum ETagType { +enum ETagType { /** ETag based on the latest `index_block_hash` or `microblock_hash`. */ chainTip = 'chain_tip', /** ETag based on a digest of all pending mempool `tx_id`s. */ @@ -177,42 +177,6 @@ async function checkETagCacheOK( } } -/** - * Check if the request has an up-to-date cached response by comparing the `If-None-Match` request header to the - * current state. If the cache is valid then a `304 Not Modified` response is sent and the route handling for - * this request is completed. If the cache is outdated, the current state is added to the `Request.locals` for - * later use in setting response cache headers. - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching#freshness - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match - * ```md - * The If-None-Match HTTP request header makes the request conditional. For GET and HEAD methods, the server - * will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given - * ones. For other methods, the request will be processed only if the eventually existing resource's ETag - * doesn't match any of the values listed. - * ``` - */ -export function getETagCacheHandler( - db: PgStore, - etagType: ETagType = ETagType.chainTip -): RequestHandler { - const requestHandler = asyncHandler(async (req, res, next) => { - const result = await checkETagCacheOK(db, req, etagType); - if (result === CACHE_OK) { - // Instruct the client to use the cached response via a `304 Not Modified` response header. - // This completes the handling for this request, do not call `next()` in order to skip the - // router handler used for non-cached responses. - res.set('Cache-Control', CACHE_CONTROL_MUST_REVALIDATE).status(304).send(); - } else { - // Request does not have a valid cache. Store the etag for later - // use in setting response cache headers. - const etag: ETag | undefined = result; - res.locals[etagType] = etag; - next(); - } - }); - return requestHandler; -} - async function calculateETag( db: PgStore, etagType: ETagType, diff --git a/src/api/controllers/db-controller.ts b/src/api/controllers/db-controller.ts index a21b74613..91724252c 100644 --- a/src/api/controllers/db-controller.ts +++ b/src/api/controllers/db-controller.ts @@ -69,7 +69,7 @@ import { import { Microblock } from '../schemas/entities/microblock'; import { Block } from '../schemas/entities/block'; -export const TransactionTypes = [ +const TransactionTypes = [ 'contract_call', 'smart_contract', 'token_transfer', @@ -79,17 +79,13 @@ export const TransactionTypes = [ ] as const; export type TransactionType = (typeof TransactionTypes)[number]; -export const TransactionAnchorModeTypes = ['on_chain_only', 'off_chain_only', 'any'] as const; -export type TransactionAnchorModeType = (typeof TransactionAnchorModeTypes)[number]; +const TransactionAnchorModeTypes = ['on_chain_only', 'off_chain_only', 'any'] as const; +type TransactionAnchorModeType = (typeof TransactionAnchorModeTypes)[number]; -export const TransactionStatuses = [ - 'success', - 'abort_by_response', - 'abort_by_post_condition', -] as const; -export type TransactionStatus = (typeof TransactionStatuses)[number]; +const TransactionStatuses = ['success', 'abort_by_response', 'abort_by_post_condition'] as const; +type TransactionStatus = (typeof TransactionStatuses)[number]; -export const MempoolTransactionStatuses = [ +const MempoolTransactionStatuses = [ 'pending', 'dropped_replace_by_fee', 'dropped_replace_across_fork', @@ -97,7 +93,7 @@ export const MempoolTransactionStatuses = [ 'dropped_stale_garbage_collect', 'dropped_problematic', ] as const; -export type MempoolTransactionStatus = (typeof MempoolTransactionStatuses)[number]; +type MempoolTransactionStatus = (typeof MempoolTransactionStatuses)[number]; export function parseTxTypeStrings(values: string[]): TransactionType[] { return values.map(v => { diff --git a/src/api/routes/v2/schemas.ts b/src/api/routes/v2/schemas.ts index 0914f5977..f4d7bd3e3 100644 --- a/src/api/routes/v2/schemas.ts +++ b/src/api/routes/v2/schemas.ts @@ -23,46 +23,6 @@ const ajv = addFormats(new Ajv({ coerceTypes: true }), [ 'regex', ]); -/** - * Validate request query parameters with a TypeBox compiled schema - * @param req - Request - * @param res - Response - * @param compiledType - Ajv compiled schema - * @returns boolean - */ -export function validRequestQuery( - req: Request, - res: Response, - compiledType: ValidateFunction -): boolean { - if (!compiledType(req.query)) { - // TODO: Return a more user-friendly error - res.status(400).json({ errors: compiledType.errors }); - return false; - } - return true; -} - -/** - * Validate request path parameters with a TypeBox compiled schema - * @param req - Request - * @param res - Response - * @param compiledType - Ajv compiled schema - * @returns boolean - */ -export function validRequestParams( - req: Request, - res: Response, - compiledType: ValidateFunction -): boolean { - if (!compiledType(req.params)) { - // TODO: Return a more user-friendly error - res.status(400).json({ errors: compiledType.errors }); - return false; - } - return true; -} - // ========================== // Parameters // ========================== @@ -151,7 +111,6 @@ const BlockHashParamSchema = Type.String({ description: 'Block hash', examples: ['daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133'], }); -export const CompiledBlockHashParam = ajv.compile(BlockHashParamSchema); const AddressParamSchema = Type.String({ pattern: isTestEnv ? undefined : '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}', @@ -192,7 +151,6 @@ const PaginationQueryParamsSchema = (t: T) => const BlockPaginationQueryParamsSchema = PaginationQueryParamsSchema(BlockLimitParamSchema); export type BlockPaginationQueryParams = Static; -export const CompiledBlockPaginationQueryParams = ajv.compile(BlockPaginationQueryParamsSchema); const TransactionPaginationQueryParamsSchema = PaginationQueryParamsSchema( TransactionLimitParamSchema @@ -200,21 +158,12 @@ const TransactionPaginationQueryParamsSchema = PaginationQueryParamsSchema( export type TransactionPaginationQueryParams = Static< typeof TransactionPaginationQueryParamsSchema >; -export const CompiledTransactionPaginationQueryParams = ajv.compile( - TransactionPaginationQueryParamsSchema -); const PoxCyclePaginationQueryParamsSchema = PaginationQueryParamsSchema(PoxCycleLimitParamSchema); export type PoxCyclePaginationQueryParams = Static; -export const CompiledPoxCyclePaginationQueryParams = ajv.compile( - PoxCyclePaginationQueryParamsSchema -); const PoxSignerPaginationQueryParamsSchema = PaginationQueryParamsSchema(PoxSignerLimitParamSchema); export type PoxSignerPaginationQueryParams = Static; -export const CompiledPoxSignerPaginationQueryParams = ajv.compile( - PoxSignerPaginationQueryParamsSchema -); export const BlockParamsSchema = Type.Object( { @@ -239,14 +188,12 @@ export const BurnBlockParamsSchema = Type.Object( { additionalProperties: false } ); export type BurnBlockParams = Static; -export const CompiledBurnBlockParams = ajv.compile(BurnBlockParamsSchema); const PoxCycleParamsSchema = Type.Object( { cycle_number: Type.String({ pattern: '^[0-9]+$' }) }, { additionalProperties: false } ); export type PoxCycleParams = Static; -export const CompiledPoxCycleParams = ajv.compile(PoxCycleParamsSchema); const PoxCycleSignerParamsSchema = Type.Object( { @@ -258,7 +205,6 @@ const PoxCycleSignerParamsSchema = Type.Object( { additionalProperties: false } ); export type PoxCycleSignerParams = Static; -export const CompiledPoxCycleSignerParams = ajv.compile(PoxCycleSignerParamsSchema); export const SmartContractStatusParamsSchema = Type.Object( { @@ -267,14 +213,12 @@ export const SmartContractStatusParamsSchema = Type.Object( { additionalProperties: false } ); export type SmartContractStatusParams = Static; -export const CompiledSmartContractStatusParams = ajv.compile(SmartContractStatusParamsSchema); export const AddressParamsSchema = Type.Object( { address: Type.Union([AddressParamSchema, SmartContractIdParamSchema]) }, { additionalProperties: false } ); export type AddressParams = Static; -export const CompiledAddressParams = ajv.compile(AddressParamsSchema); export const AddressTransactionParamsSchema = Type.Object( { @@ -284,4 +228,3 @@ export const AddressTransactionParamsSchema = Type.Object( { additionalProperties: false } ); export type AddressTransactionParams = Static; -export const CompiledAddressTransactionParams = ajv.compile(AddressTransactionParamsSchema); diff --git a/src/api/schemas/entities/addresses.ts b/src/api/schemas/entities/addresses.ts index 1d1f99b15..a225c4c9e 100644 --- a/src/api/schemas/entities/addresses.ts +++ b/src/api/schemas/entities/addresses.ts @@ -38,7 +38,7 @@ export const AddressNoncesSchema = Type.Object( ); export type AddressNonces = Static; -export const AddressUnlockScheduleSchema = Type.Object( +const AddressUnlockScheduleSchema = Type.Object( { amount: Type.String({ description: 'Micro-STX amount locked at this block height.', @@ -47,9 +47,8 @@ export const AddressUnlockScheduleSchema = Type.Object( }, { title: 'AddressUnlockSchedule', description: 'Unlock schedule amount and block height' } ); -export type AddressUnlockSchedule = Static; -export const AddressTokenOfferingLockedSchema = Type.Object( +const AddressTokenOfferingLockedSchema = Type.Object( { total_locked: Type.String({ description: 'Micro-STX amount still locked at current block height.', diff --git a/src/api/schemas/entities/balances.ts b/src/api/schemas/entities/balances.ts index cbaef4f3f..b245b71f9 100644 --- a/src/api/schemas/entities/balances.ts +++ b/src/api/schemas/entities/balances.ts @@ -8,7 +8,6 @@ export const FtBalanceSchema = Type.Object( }, { title: 'FtBalance' } ); -export type FtBalance = Static; export const NftBalanceSchema = Type.Object( { @@ -18,7 +17,6 @@ export const NftBalanceSchema = Type.Object( }, { title: 'NftBalance' } ); -export type NftBalance = Static; export const StxBalanceSchema = Type.Object( { @@ -49,4 +47,3 @@ export const StxBalanceSchema = Type.Object( }, { title: 'StxBalance' } ); -export type StxBalance = Static; diff --git a/src/api/schemas/entities/post-conditions.ts b/src/api/schemas/entities/post-conditions.ts index 6d7cdcb9b..4169e14b1 100644 --- a/src/api/schemas/entities/post-conditions.ts +++ b/src/api/schemas/entities/post-conditions.ts @@ -1,7 +1,6 @@ import { Static, Type } from '@sinclair/typebox'; export const PostConditionModeSchema = Type.Union([Type.Literal('allow'), Type.Literal('deny')]); -export type PostConditionMode = Static; const PostConditionPrincipalSchema = Type.Union([ Type.Object({ @@ -17,7 +16,6 @@ const PostConditionPrincipalSchema = Type.Union([ contract_name: Type.String(), }), ]); -export type PostConditionPrincipal = Static; const PostConditionFungibleConditionCodeSchema = Type.Union([ Type.Literal('sent_equal_to'), @@ -66,4 +64,3 @@ export const PostConditionSchema = Type.Union([ PostConditionFungibleAssetSchema, PostConditionNonFungibleAssetSchema, ]); -export type PostCondition = Static; diff --git a/src/api/schemas/entities/search.ts b/src/api/schemas/entities/search.ts index e29bcfe3f..b450d09d9 100644 --- a/src/api/schemas/entities/search.ts +++ b/src/api/schemas/entities/search.ts @@ -3,7 +3,7 @@ import { AddressStxBalanceSchema } from './addresses'; import { BlockSchema } from './block'; import { MempoolTransactionSchema, TransactionSchema } from './transactions'; -export const AddressSearchResultSchema = Type.Object( +const AddressSearchResultSchema = Type.Object( { entity_id: Type.String({ description: 'The id used to search this query.' }), entity_type: Type.Literal('standard_address'), @@ -13,7 +13,7 @@ export const AddressSearchResultSchema = Type.Object( ); export type AddressSearchResult = Static; -export const BlockSearchResultSchema = Type.Object( +const BlockSearchResultSchema = Type.Object( { entity_id: Type.String({ description: 'The id used to search this query.' }), entity_type: Type.Literal('block_hash'), @@ -30,7 +30,7 @@ export const BlockSearchResultSchema = Type.Object( ); export type BlockSearchResult = Static; -export const ContractSearchResultSchema = Type.Object( +const ContractSearchResultSchema = Type.Object( { entity_id: Type.String({ description: 'The id used to search this query.' }), entity_type: Type.Literal('contract_address'), @@ -50,7 +50,7 @@ export const ContractSearchResultSchema = Type.Object( ); export type ContractSearchResult = Static; -export const MempoolTxSearchResultSchema = Type.Object( +const MempoolTxSearchResultSchema = Type.Object( { entity_id: Type.String({ description: 'The id used to search this query.' }), entity_type: Type.Literal('mempool_tx_id'), @@ -63,7 +63,7 @@ export const MempoolTxSearchResultSchema = Type.Object( ); export type MempoolTxSearchResult = Static; -export const TxSearchResultSchema = Type.Object( +const TxSearchResultSchema = Type.Object( { entity_id: Type.String({ description: 'The id used to search this query.' }), entity_type: Type.Literal('tx_id'), diff --git a/src/api/schemas/entities/smart-contracts.ts b/src/api/schemas/entities/smart-contracts.ts index c521696d5..c3a408c66 100644 --- a/src/api/schemas/entities/smart-contracts.ts +++ b/src/api/schemas/entities/smart-contracts.ts @@ -16,9 +16,8 @@ export const SmartContractSchema = Type.Object( description: 'A Smart Contract Detail', } ); -export type SmartContract = Static; -export const SmartContractStatusFoundSchema = Type.Object({ +const SmartContractStatusFoundSchema = Type.Object({ found: Type.Literal(true), result: Type.Object({ status: Type.String({ @@ -33,12 +32,10 @@ export const SmartContractStatusFoundSchema = Type.Object({ ), }), }); -export type SmartContractStatusFound = Static; -export const SmartContractStatusNotFoundSchema = Type.Object({ +const SmartContractStatusNotFoundSchema = Type.Object({ found: Type.Literal(false), }); -export type SmartContractStatusNotFound = Static; export const SmartContractStatusListSchema = Type.Record( Type.String({ description: 'Smart contract ID' }), diff --git a/src/api/schemas/entities/tokens.ts b/src/api/schemas/entities/tokens.ts index cac83b906..c318a3090 100644 --- a/src/api/schemas/entities/tokens.ts +++ b/src/api/schemas/entities/tokens.ts @@ -2,7 +2,7 @@ import { Static, Type } from '@sinclair/typebox'; import { TransactionSchema } from './transactions'; import { OptionalNullable } from '../util'; -export const NonFungibleTokenValueSchema = Type.Object( +const NonFungibleTokenValueSchema = Type.Object( { hex: Type.String({ description: 'Hex string representing the identifier of the Non-Fungible Token', @@ -28,7 +28,6 @@ export const NonFungibleTokenHoldingWithTxIdSchema = Type.Object( description: 'Ownership of a Non-Fungible Token', } ); -export type NonFungibleTokenHoldingWithTxId = Static; export const NonFungibleTokenHoldingWithTxMetadataSchema = Type.Object( { @@ -42,9 +41,6 @@ export const NonFungibleTokenHoldingWithTxMetadataSchema = Type.Object( description: 'Ownership of a Non-Fungible Token with transaction metadata', } ); -export type NonFungibleTokenHoldingWithTxMetadata = Static< - typeof NonFungibleTokenHoldingWithTxMetadataSchema ->; export const NonFungibleTokenHistoryEventWithTxIdSchema = Type.Object( { @@ -59,9 +55,6 @@ export const NonFungibleTokenHistoryEventWithTxIdSchema = Type.Object( description: 'Non-Fungible Token history event with transaction id', } ); -export type NonFungibleTokenHistoryEventWithTxId = Static< - typeof NonFungibleTokenHistoryEventWithTxIdSchema ->; export const NonFungibleTokenHistoryEventWithTxMetadataSchema = Type.Object( { @@ -76,9 +69,6 @@ export const NonFungibleTokenHistoryEventWithTxMetadataSchema = Type.Object( description: 'Non-Fungible Token history event with transaction metadata', } ); -export type NonFungibleTokenHistoryEventWithTxMetadata = Static< - typeof NonFungibleTokenHistoryEventWithTxMetadataSchema ->; export const NonFungibleTokenMintWithTxIdSchema = Type.Object( { @@ -92,7 +82,7 @@ export const NonFungibleTokenMintWithTxIdSchema = Type.Object( description: 'Non-Fungible Token mint event with transaction id', } ); -export type NonFungibleTokenMintWithTxId = Static; +type NonFungibleTokenMintWithTxId = Static; export const NonFungibleTokenMintWithTxMetadataSchema = Type.Object({ recipient: Type.Optional(Type.String()), @@ -100,6 +90,3 @@ export const NonFungibleTokenMintWithTxMetadataSchema = Type.Object({ value: NonFungibleTokenValueSchema, tx: TransactionSchema, }); -export type NonFungibleTokenMintWithTxMetadata = Static< - typeof NonFungibleTokenMintWithTxMetadataSchema ->; diff --git a/src/api/schemas/entities/transaction-events.ts b/src/api/schemas/entities/transaction-events.ts index 982638bf9..c3913f52f 100644 --- a/src/api/schemas/entities/transaction-events.ts +++ b/src/api/schemas/entities/transaction-events.ts @@ -7,7 +7,7 @@ export const TransactionEventAssetTypeSchema = Type.Enum({ burn: 'burn', }); -export const TransactionEventType = { +const TransactionEventType = { smart_contract_log: 'smart_contract_log', stx_lock: 'stx_lock', stx_asset: 'stx_asset', @@ -20,7 +20,7 @@ export const TransactionEventTypeCommaListSchema = CommaStringList(TransactionEv examples: ['smart_contract_log,stx_lock,stx_asset'], }); -export const AbstractTransactionEventSchema = Type.Object( +const AbstractTransactionEventSchema = Type.Object( { event_index: Type.Integer(), }, @@ -28,9 +28,9 @@ export const AbstractTransactionEventSchema = Type.Object( title: 'AbstractTransactionEvent', } ); -export type AbstractTransactionEvent = Static; +type AbstractTransactionEvent = Static; -export const SmartContractLogTransactionEventSchema = Type.Intersect( +const SmartContractLogTransactionEventSchema = Type.Intersect( [ AbstractTransactionEventSchema, Type.Object({ @@ -55,7 +55,7 @@ export type SmartContractLogTransactionEvent = Static< typeof SmartContractLogTransactionEventSchema >; -export const StxLockTransactionEventSchema = Type.Intersect( +const StxLockTransactionEventSchema = Type.Intersect( [ AbstractTransactionEventSchema, Type.Object({ @@ -75,7 +75,7 @@ export const StxLockTransactionEventSchema = Type.Intersect( ); export type StxLockTransactionEvent = Static; -export const StxAssetTransactionEventSchema = Type.Intersect( +const StxAssetTransactionEventSchema = Type.Intersect( [ AbstractTransactionEventSchema, Type.Object({ @@ -97,7 +97,7 @@ export const StxAssetTransactionEventSchema = Type.Intersect( ); export type StxAssetTransactionEvent = Static; -export const FungibleTokenAssetTransactionEventSchema = Type.Intersect( +const FungibleTokenAssetTransactionEventSchema = Type.Intersect( [ AbstractTransactionEventSchema, Type.Object({ @@ -120,7 +120,7 @@ export type FungibleTokenAssetTransactionEvent = Static< typeof FungibleTokenAssetTransactionEventSchema >; -export const NonFungibleTokenAssetTransactionEventSchema = Type.Intersect( +const NonFungibleTokenAssetTransactionEventSchema = Type.Intersect( [ AbstractTransactionEventSchema, Type.Object({ diff --git a/src/api/schemas/entities/transactions.ts b/src/api/schemas/entities/transactions.ts index 2a12704a8..fd2450b18 100644 --- a/src/api/schemas/entities/transactions.ts +++ b/src/api/schemas/entities/transactions.ts @@ -3,7 +3,7 @@ import { CommaStringList, Nullable } from '../util'; import { PostConditionModeSchema, PostConditionSchema } from './post-conditions'; import { TransactionEventSchema } from './transaction-events'; -export const TransactionType = { +const TransactionType = { coinbase: 'coinbase', token_transfer: 'token_transfer', smart_contract: 'smart_contract', @@ -175,7 +175,7 @@ export const TokenTransferTransactionMetadataProperties = { }), }), }; -export const TokenTransferTransactionMetadataSchema = Type.Object( +const TokenTransferTransactionMetadataSchema = Type.Object( TokenTransferTransactionMetadataProperties, { title: 'TokenTransferTransactionMetadata', @@ -203,7 +203,7 @@ export const SmartContractTransactionMetadataProperties = { }), }), }; -export const SmartContractTransactionMetadataSchema = Type.Object( +const SmartContractTransactionMetadataSchema = Type.Object( SmartContractTransactionMetadataProperties, { title: 'SmartContractTransactionMetadata', @@ -246,7 +246,7 @@ export const ContractCallTransactionMetadataProperties = { ), }), }; -export const ContractCallTransactionMetadataSchema = Type.Object( +const ContractCallTransactionMetadataSchema = Type.Object( ContractCallTransactionMetadataProperties, { title: 'ContractCallTransactionMetadata', @@ -266,7 +266,7 @@ export const PoisonMicroblockTransactionMetadataProperties = { }), }), }; -export const PoisonMicroblockTransactionMetadataSchema = Type.Object( +const PoisonMicroblockTransactionMetadataSchema = Type.Object( PoisonMicroblockTransactionMetadataProperties, { title: 'PoisonMicroblockTransactionMetadata', @@ -301,13 +301,10 @@ export const CoinbaseTransactionMetadataProperties = { ), }), }; -export const CoinbaseTransactionMetadataSchema = Type.Object( - CoinbaseTransactionMetadataProperties, - { - title: 'CoinbaseTransaction', - description: 'Metadata associated with a coinbase type transaction', - } -); +const CoinbaseTransactionMetadataSchema = Type.Object(CoinbaseTransactionMetadataProperties, { + title: 'CoinbaseTransaction', + description: 'Metadata associated with a coinbase type transaction', +}); export type CoinbaseTransactionMetadata = Static; export const TenureChangeTransactionMetadataProperties = { @@ -340,7 +337,7 @@ export const TenureChangeTransactionMetadataProperties = { }), }), }; -export const TenureChangeTransactionMetadataSchema = Type.Object( +const TenureChangeTransactionMetadataSchema = Type.Object( TenureChangeTransactionMetadataProperties, { title: 'TenureChangeTransaction', @@ -349,16 +346,15 @@ export const TenureChangeTransactionMetadataSchema = Type.Object( ); export type TenureChangeTransactionMetadata = Static; -export const TokenTransferTransactionSchema = Type.Object( +const TokenTransferTransactionSchema = Type.Object( { ...AbstractTransactionProperties, ...TokenTransferTransactionMetadataProperties, }, { title: 'TokenTransferTransaction' } ); -export type TokenTransferTransaction = Static; -export const SmartContractTransactionSchema = Type.Object( +const SmartContractTransactionSchema = Type.Object( { ...AbstractTransactionProperties, ...SmartContractTransactionMetadataProperties, @@ -367,7 +363,7 @@ export const SmartContractTransactionSchema = Type.Object( ); export type SmartContractTransaction = Static; -export const ContractCallTransactionSchema = Type.Object( +const ContractCallTransactionSchema = Type.Object( { ...AbstractTransactionProperties, ...ContractCallTransactionMetadataProperties, @@ -376,16 +372,15 @@ export const ContractCallTransactionSchema = Type.Object( ); export type ContractCallTransaction = Static; -export const PoisonMicroblockTransactionSchema = Type.Object( +const PoisonMicroblockTransactionSchema = Type.Object( { ...AbstractTransactionProperties, ...PoisonMicroblockTransactionMetadataProperties, }, { title: 'PoisonMicroblockTransaction' } ); -export type PoisonMicroblockTransaction = Static; -export const CoinbaseTransactionSchema = Type.Object( +const CoinbaseTransactionSchema = Type.Object( { ...AbstractTransactionProperties, ...CoinbaseTransactionMetadataProperties, @@ -394,14 +389,14 @@ export const CoinbaseTransactionSchema = Type.Object( ); export type CoinbaseTransaction = Static; -export const TenureChangeTransactionSchema = Type.Object( +const TenureChangeTransactionSchema = Type.Object( { ...AbstractTransactionProperties, ...TenureChangeTransactionMetadataProperties, }, { title: 'TenureChangeTransaction' } ); -export type TenureChangeTransaction = Static; +type TenureChangeTransaction = Static; const TransactionMetadataSchema = Type.Union([ TokenTransferTransactionMetadataSchema, @@ -453,7 +448,7 @@ const AbstractMempoolTransactionSchema = Type.Object({ }); export type AbstractMempoolTransaction = Static; -export const TokenTransferMempoolTransactionSchema = Type.Object( +const TokenTransferMempoolTransactionSchema = Type.Object( { ...AbstractMempoolTransactionProperties, ...TokenTransferTransactionMetadataProperties, @@ -461,7 +456,7 @@ export const TokenTransferMempoolTransactionSchema = Type.Object( { title: 'TokenTransferMempoolTransaction' } ); -export const SmartContractMempoolTransactionSchema = Type.Object( +const SmartContractMempoolTransactionSchema = Type.Object( { ...AbstractMempoolTransactionProperties, ...SmartContractTransactionMetadataProperties, @@ -469,7 +464,7 @@ export const SmartContractMempoolTransactionSchema = Type.Object( { title: 'SmartContractMempoolTransaction' } ); -export const ContractCallMempoolTransactionSchema = Type.Object( +const ContractCallMempoolTransactionSchema = Type.Object( { ...AbstractMempoolTransactionProperties, ...ContractCallTransactionMetadataProperties, @@ -477,7 +472,7 @@ export const ContractCallMempoolTransactionSchema = Type.Object( { title: 'ContractCallMempoolTransaction' } ); -export const PoisonMicroblockMempoolTransactionSchema = Type.Object( +const PoisonMicroblockMempoolTransactionSchema = Type.Object( { ...AbstractMempoolTransactionProperties, ...PoisonMicroblockTransactionMetadataProperties, @@ -485,7 +480,7 @@ export const PoisonMicroblockMempoolTransactionSchema = Type.Object( { title: 'PoisonMicroblockMempoolTransaction' } ); -export const CoinbaseMempoolTransactionSchema = Type.Object( +const CoinbaseMempoolTransactionSchema = Type.Object( { ...AbstractMempoolTransactionProperties, ...CoinbaseTransactionMetadataProperties, @@ -493,7 +488,7 @@ export const CoinbaseMempoolTransactionSchema = Type.Object( { title: 'CoinbaseMempoolTransaction' } ); -export const TenureChangeMempoolTransactionSchema = Type.Object( +const TenureChangeMempoolTransactionSchema = Type.Object( { ...AbstractMempoolTransactionProperties, ...TenureChangeTransactionMetadataProperties, @@ -511,7 +506,7 @@ export const MempoolTransactionSchema = Type.Union([ ]); export type MempoolTransaction = Static; -export const TransactionFoundSchema = Type.Object( +const TransactionFoundSchema = Type.Object( { found: Type.Literal(true), result: Type.Union([TransactionSchema, MempoolTransactionSchema]), @@ -523,7 +518,7 @@ export const TransactionFoundSchema = Type.Object( ); export type TransactionFound = Static; -export const TransactionNotFoundSchema = Type.Object( +const TransactionNotFoundSchema = Type.Object( { found: Type.Literal(false), result: Type.Object({ @@ -537,11 +532,10 @@ export const TransactionNotFoundSchema = Type.Object( ); export type TransactionNotFound = Static; -export const TransactionSearchResultSchema = Type.Union([ +const TransactionSearchResultSchema = Type.Union([ TransactionFoundSchema, TransactionNotFoundSchema, ]); -export type TransactionSearchResult = Static; export const TransactionSearchResponseSchema = Type.Record( Type.String(), diff --git a/src/api/schemas/params.ts b/src/api/schemas/params.ts index 12b7259d7..43f08131b 100644 --- a/src/api/schemas/params.ts +++ b/src/api/schemas/params.ts @@ -61,7 +61,7 @@ export const AddressParamSchema = Type.String({ examples: ['SP318Q55DEKHRXJK696033DQN5C54D9K2EE6DHRWP'], }); -export const SmartContractIdParamSchema = Type.String({ +const SmartContractIdParamSchema = Type.String({ pattern: isTestEnv ? undefined : '^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{28,41}.[a-zA-Z]([a-zA-Z0-9]|[-_]){0,39}$', diff --git a/src/pox-helpers.ts b/src/pox-helpers.ts index 7cb76f088..f35bd444f 100644 --- a/src/pox-helpers.ts +++ b/src/pox-helpers.ts @@ -17,18 +17,11 @@ export enum SyntheticPoxEventName { const BOOT_ADDR_MAINNET = 'SP000000000000000000002Q6VF78'; const BOOT_ADDR_TESTNET = 'ST000000000000000000002AMW42H'; -export const POX_1_CONTRACT_NAME = 'pox'; +const POX_1_CONTRACT_NAME = 'pox'; export const POX_2_CONTRACT_NAME = 'pox-2'; export const POX_3_CONTRACT_NAME = 'pox-3'; export const POX_4_CONTRACT_NAME = 'pox-4'; -export const PoxContractNames = [ - POX_1_CONTRACT_NAME, - POX_2_CONTRACT_NAME, - POX_3_CONTRACT_NAME, - POX_4_CONTRACT_NAME, -] as const; - export const PoxContractIdentifier = { pox1: { mainnet: `${BOOT_ADDR_MAINNET}.${POX_1_CONTRACT_NAME}`, diff --git a/src/rosetta/types.ts b/src/rosetta/types.ts index 62cc8289e..791277eb4 100644 --- a/src/rosetta/types.ts +++ b/src/rosetta/types.ts @@ -94,7 +94,7 @@ export interface RosettaSubAccount { /** * This is also known as the block hash. */ -export interface RosettaBlockIdentifierHash { +interface RosettaBlockIdentifierHash { /** * This is also known as the block hash. */ @@ -104,7 +104,7 @@ export interface RosettaBlockIdentifierHash { /** * This is also known as the block height. */ -export interface RosettaBlockIdentifierHeight { +interface RosettaBlockIdentifierHeight { /** * This is also known as the block height. */ @@ -178,7 +178,7 @@ export interface RosettaOperation { /** * The operation_identifier uniquely identifies an operation within a transaction. */ -export interface RosettaOperationIdentifier { +interface RosettaOperationIdentifier { /** * The operation index is used to ensure each operation has a unique identifier within a transaction. This index is only relative to the transaction and NOT GLOBAL. The operations in each transaction should start from index 0. To clarify, there may not be any notion of an operation index in the blockchain being described. */ @@ -206,7 +206,7 @@ export interface RosettaAmount { /** * CoinChange is used to represent a change in state of a some coin identified by a coin_identifier. This object is part of the Operation model and must be populated for UTXO-based blockchains. Coincidentally, this abstraction of UTXOs allows for supporting both account-based transfers and UTXO-based transfers on the same blockchain (when a transfer is account-based, don't populate this model). */ -export interface RosettaCoinChange { +interface RosettaCoinChange { /** * CoinIdentifier uniquely identifies a Coin. */ @@ -246,7 +246,7 @@ export interface RosettaCurrency { /** * Restrict referenced related_operations to identifier indexes \< the current operation_identifier.index. This ensures there exists a clear DAG-structure of relations. Since operations are one-sided, one could imagine relating operations in a single transfer or linking operations in a call tree. */ -export interface RosettaRelatedOperation { +interface RosettaRelatedOperation { /** * Describes the index of related operation. */ @@ -420,7 +420,7 @@ export interface RosettaConstructionPayloadResponse { /** * SigningPayload is signed by the client with the keypair associated with an address using the specified SignatureType. SignatureType can be optionally populated if there is a restriction on the signature scheme that can be used to sign the payload. */ -export interface SigningPayload { +interface SigningPayload { /** * [DEPRECATED by account_identifier in v1.4.4] The network-specific address of the account that should sign the payload. */ @@ -649,7 +649,7 @@ export interface RosettaAccountBalanceResponse { /** * If a blockchain is UTXO-based, all unspent Coins owned by an account_identifier should be returned alongside the balance. It is highly recommended to populate this field so that users of the Rosetta API implementation don't need to maintain their own indexer to track their UTXOs. */ -export interface RosettaCoin { +interface RosettaCoin { /** * CoinIdentifier uniquely identifies a Coin. */ @@ -676,7 +676,7 @@ export interface RosettaBlockResponse { /** * The transaction_identifier uniquely identifies a transaction in a particular network and block or in the mempool. */ -export interface OtherTransactionIdentifier { +interface OtherTransactionIdentifier { /** * Any transactions that are attributable only to a block (ex: a block event) should use the hash of the block as the identifier. */ @@ -713,7 +713,7 @@ export interface RosettaConstructionCombineRequest { /** * Signature contains the payload that was signed, the public keys of the keypairs used to produce the signature, the signature (encoded in hex), and the SignatureType. PublicKey is often times not known during construction of the signing payloads but may be needed to combine signatures properly. */ -export interface RosettaSignature { +interface RosettaSignature { signing_payload: SigningPayload; public_key: RosettaPublicKey; signature_type: SignatureType; @@ -723,12 +723,7 @@ export interface RosettaSignature { /** * SignatureType is the type of a cryptographic signature. */ -export type SignatureType = - | 'ecdsa' - | 'ecdsa_recovery' - | 'ed25519' - | 'schnorr_1' - | 'schnorr_poseidon'; +type SignatureType = 'ecdsa' | 'ecdsa_recovery' | 'ed25519' | 'schnorr_1' | 'schnorr_poseidon'; /** * RosettaConstructionCombineResponse is returned by /construction/combine. The network payload will be sent directly to the construction/submit endpoint. @@ -899,7 +894,7 @@ export interface RosettaNetworkOptionsResponse { /** * OperationStatus is utilized to indicate which Operation status are considered successful. */ -export interface RosettaOperationStatus { +interface RosettaOperationStatus { /** * The status is the network-specific status of the operation. */ @@ -935,7 +930,7 @@ export interface RosettaNetworkStatusResponse { /** * The block_identifier uniquely identifies a block in a particular network. */ -export interface RosettaGenesisBlockIdentifier { +interface RosettaGenesisBlockIdentifier { /** * This is also known as the block height. */ @@ -949,7 +944,7 @@ export interface RosettaGenesisBlockIdentifier { /** * The block_identifier uniquely identifies a block in a particular network. */ -export interface RosettaOldestBlockIdentifier { +interface RosettaOldestBlockIdentifier { /** * This is also known as the block height. */ @@ -985,7 +980,7 @@ export interface RosettaSyncStatus { /** * A Peer is a representation of a node's peer. */ -export interface RosettaPeers { +interface RosettaPeers { /** * peer id */ From 94e8ffb357e1821a896e65144a9da270681a4082 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 12 Aug 2024 13:30:09 +0200 Subject: [PATCH 46/56] chore: simplify docs and client package.json scripts --- .github/workflows/ci.yml | 4 - client/package-lock.json | 646 +- client/package.json | 13 +- client/src/index.ts | 1 - docs/gulpfile.js | 16 - docs/openapi.yaml | 6 +- docs/package-lock.json | 8582 ----------------------- docs/package.json | 43 - docs/readme.md | 6 - docs/socket-io/index.d.ts | 42 - docs/tsconfig.json | 17 - package-lock.json | 11458 ++++++++++++++++++++----------- package.json | 9 +- src/test-utils/test-helpers.ts | 2 +- 14 files changed, 7542 insertions(+), 13303 deletions(-) delete mode 100644 docs/gulpfile.js delete mode 100644 docs/package-lock.json delete mode 100644 docs/package.json delete mode 100644 docs/readme.md delete mode 100644 docs/socket-io/index.d.ts delete mode 100644 docs/tsconfig.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70fbb78dd..1f903b6e0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,10 +83,6 @@ jobs: working-directory: client run: npm ci --audit=false - - name: Install docs deps - working-directory: docs - run: npm ci --audit=false - - name: Setup env vars run: echo "STACKS_CORE_EVENT_HOST=http://0.0.0.0" >> $GITHUB_ENV diff --git a/client/package-lock.json b/client/package-lock.json index 1e4600d8a..a7561fe06 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,20 +9,17 @@ "version": "0.1.2", "license": "GPL-3.0", "dependencies": { + "@types/node": "20.14.14", "eventemitter3": "^4.0.7", "jsonrpc-lite": "^2.2.0", "openapi-fetch": "^0.10.5", "socket.io-client": "^4.7.5" }, "devDependencies": { - "@types/node": "20.10.6", "concurrently": "7.6.0", "http-server": "14.0.0", "microbundle": "0.15.1", - "openapi-typescript": "7.3.0", "rimraf": "6.0.1", - "ts-node": "10.9.2", - "typedoc": "0.26.5", "typescript": "5.5.4" } }, @@ -1929,28 +1926,6 @@ "node": ">=6.9.0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2115,72 +2090,6 @@ "node": ">=14" } }, - "node_modules/@redocly/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@redocly/config": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.7.0.tgz", - "integrity": "sha512-6GKxTo/9df0654Mtivvr4lQnMOp+pRj9neVywmI5+BwfZLTtkJnj2qB3D6d8FHTr4apsNOf6zTa5FojX0Evh4g==", - "dev": true - }, - "node_modules/@redocly/openapi-core": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.19.0.tgz", - "integrity": "sha512-ezK6qr80sXvjDgHNrk/zmRs9vwpIAeHa0T/qmo96S+ib4ThQ5a8f3qjwEqxMeVxkxCTbkaY9sYSJKOxv4ejg5w==", - "dev": true, - "dependencies": { - "@redocly/ajv": "^8.11.0", - "@redocly/config": "^0.7.0", - "colorette": "^1.2.0", - "https-proxy-agent": "^7.0.4", - "js-levenshtein": "^1.1.6", - "js-yaml": "^4.1.0", - "lodash.isequal": "^4.5.0", - "minimatch": "^5.0.1", - "node-fetch": "^2.6.1", - "pluralize": "^8.0.0", - "yaml-ast-parser": "0.0.43" - }, - "engines": { - "node": ">=14.19.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@redocly/openapi-core/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@redocly/openapi-core/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@rollup/plugin-alias": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz", @@ -2295,15 +2204,6 @@ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true }, - "node_modules/@shikijs/core": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.12.1.tgz", - "integrity": "sha512-biCz/mnkMktImI6hMfMX3H9kOeqsInxWEyCHbSlL8C/2TR1FqfmGxTLRNwYCKsyCyxWLbB8rEqXRVZuyxuLFmA==", - "dev": true, - "dependencies": { - "@types/hast": "^3.0.4" - } - }, "node_modules/@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", @@ -2330,50 +2230,16 @@ "node": ">=10.13.0" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, "node_modules/@types/node": { - "version": "20.10.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz", - "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==", - "dev": true, + "version": "20.14.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz", + "integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -2393,12 +2259,6 @@ "@types/node": "*" } }, - "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", - "dev": true - }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -2411,39 +2271,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", - "dev": true, - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2468,18 +2295,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", @@ -2803,9 +2618,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001650", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz", - "integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "dev": true, "funding": [ { @@ -2888,12 +2703,6 @@ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -3004,12 +2813,6 @@ "node": ">=10" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3312,15 +3115,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -3618,12 +3412,6 @@ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "node_modules/figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -3745,9 +3533,9 @@ } }, "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", @@ -4167,19 +3955,6 @@ "node": ">=12" } }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -4259,18 +4034,6 @@ "node": ">=8" } }, - "node_modules/index-to-position": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", - "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4649,33 +4412,12 @@ "node": ">=8" } }, - "node_modules/js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -4694,12 +4436,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -4753,15 +4489,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "dev": true, - "dependencies": { - "uc.micro": "^2.0.0" - } - }, "node_modules/loader-utils": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", @@ -4801,12 +4528,6 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -4834,12 +4555,6 @@ "yallist": "^3.0.2" } }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, "node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -4864,41 +4579,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/maxmin": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", @@ -5008,12 +4688,6 @@ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "dev": true - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5172,26 +4846,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -5315,66 +4969,18 @@ } }, "node_modules/openapi-fetch": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.10.5.tgz", - "integrity": "sha512-lOHWzQDYrMakHSqAOqJJGawitSGQzLM8w8zXTrpffe7u9aWqzFvhdJJNqfcW1EzaXtNNdPdMzXaFLdrjgn68ow==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.10.6.tgz", + "integrity": "sha512-6xXfvIEL/POtLGOaFPsp3O+pDe+J3DZYxbD9BrsQHXOTeNK8z/gsWHT6adUy1KcpQOhmkerMzlQrJM6DbN55dQ==", "dependencies": { "openapi-typescript-helpers": "^0.0.11" } }, - "node_modules/openapi-typescript": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.3.0.tgz", - "integrity": "sha512-EkljRjYWOPwGXiK++uI9MkGv2Y7uhbkZbi9V1z3r3EpmWVO6aFTHXSLNvxIWo6UT6LCTYgEYkUB3BWQjwwXthg==", - "dev": true, - "dependencies": { - "@redocly/openapi-core": "^1.16.0", - "ansi-colors": "^4.1.3", - "parse-json": "^8.1.0", - "supports-color": "^9.4.0", - "yargs-parser": "^21.1.1" - }, - "bin": { - "openapi-typescript": "bin/cli.js" - }, - "peerDependencies": { - "typescript": "^5.x" - } - }, "node_modules/openapi-typescript-helpers": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.0.11.tgz", "integrity": "sha512-xofUHlVFq+BMquf3nh9I8N2guHckW6mrDO/F3kaFgrL7MGbjldDnQ9TIT+rkH/+H0LiuO+RuZLnNmsJwsjwUKg==" }, - "node_modules/openapi-typescript/node_modules/parse-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", - "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "index-to-position": "^0.1.2", - "type-fest": "^4.7.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi-typescript/node_modules/supports-color": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -5602,15 +5208,6 @@ "node": ">=8" } }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", @@ -6232,24 +5829,6 @@ "node": ">=0.12" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", @@ -6372,15 +5951,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -6851,16 +6421,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shiki": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.12.1.tgz", - "integrity": "sha512-nwmjbHKnOYYAe1aaQyEBHvQymJgfm86ZSS7fT8OaPRr4sbAcBNz7PbfAikMEFSDQ6se2j2zobkXvVKcBOm0ysg==", - "dev": true, - "dependencies": { - "@shikijs/core": "1.12.1", - "@types/hast": "^3.0.4" - } - }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -7180,9 +6740,9 @@ } }, "node_modules/terser": { - "version": "5.31.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", - "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", + "version": "5.31.5", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.5.tgz", + "integrity": "sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -7222,12 +6782,6 @@ "node": ">=4" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -7237,67 +6791,12 @@ "tree-kill": "cli.js" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, "node_modules/tslib": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, - "node_modules/type-fest": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.23.0.tgz", - "integrity": "sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", @@ -7371,64 +6870,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedoc": { - "version": "0.26.5", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.5.tgz", - "integrity": "sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==", - "dev": true, - "dependencies": { - "lunr": "^2.3.9", - "markdown-it": "^14.1.0", - "minimatch": "^9.0.5", - "shiki": "^1.9.1", - "yaml": "^2.4.5" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typedoc/node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/typescript": { "version": "5.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", @@ -7442,12 +6883,6 @@ "node": ">=14.17" } }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -7466,8 +6901,7 @@ "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -7560,15 +6994,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", @@ -7581,18 +7006,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -7605,16 +7018,6 @@ "node": ">=12" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7758,12 +7161,6 @@ "node": ">= 6" } }, - "node_modules/yaml-ast-parser": { - "version": "0.0.43", - "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", - "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", - "dev": true - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -7790,15 +7187,6 @@ "engines": { "node": ">=12" } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } } } } diff --git a/client/package.json b/client/package.json index 71500a299..c0b4b8bf4 100644 --- a/client/package.json +++ b/client/package.json @@ -18,36 +18,29 @@ "unpkg": "lib/index.umd.js", "scripts": { "prepublishOnly": "npm run build", - "build": "rimraf ./lib && npm run generate-openapi && npm run build:node && npm run build:browser", + "build": "rimraf ./lib && npm run build:client --prefix .. && npm run build:node && npm run build:browser", "build:node": "tsc", "build:browser": "microbundle -i src/index.ts -o lib/index.umd.js --no-pkg-main -f umd --external none --globals none --no-compress --tsconfig tsconfig.browser.json --name StacksBlockchainApiClient", "build:browser:watch": "npm run build:browser -- watch", "start": "concurrently npm:build:browser:watch npm:open", - "test": "ts-node test/test.ts", - "open": "http-server -o 9222 -o index.html", - "prep-openapi": "npm run build --prefix ../docs", - "generate-openapi": "npm run prep-openapi && openapi-typescript --default-non-nullable=false ../docs/openapi.yaml -o ./src/generated/schema.d.ts", - "generate:docs": "npm run generate-openapi && typedoc src/**/*.ts" + "open": "http-server -o 9222 -o index.html" }, "files": [ "src", "lib" ], "dependencies": { + "@types/node": "20.14.14", "eventemitter3": "^4.0.7", "jsonrpc-lite": "^2.2.0", "openapi-fetch": "^0.10.5", "socket.io-client": "^4.7.5" }, "devDependencies": { - "@types/node": "20.10.6", "concurrently": "7.6.0", "http-server": "14.0.0", "microbundle": "0.15.1", - "openapi-typescript": "7.3.0", "rimraf": "6.0.1", - "ts-node": "10.9.2", - "typedoc": "0.26.5", "typescript": "5.5.4" } } diff --git a/client/src/index.ts b/client/src/index.ts index baff5bb83..347f47a81 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -5,7 +5,6 @@ import { BASE_PATH } from "./common"; export function createClient(options?: ClientOptions) { return createOpenApiClient({ baseUrl: BASE_PATH, ...options }); } -export default createClient; export * from './common'; export * from './socket-io'; diff --git a/docs/gulpfile.js b/docs/gulpfile.js deleted file mode 100644 index 521934a84..000000000 --- a/docs/gulpfile.js +++ /dev/null @@ -1,16 +0,0 @@ -const { src, series } = require('gulp'); -const path = require('path'); -const ghPages = require('gulp-gh-pages'); -const del = require('del'); - -const buildFolder = '.tmp'; - -function deployToGithubPages() { - return src([path.join(buildFolder, '**/*')]).pipe(ghPages()); -} - -function clean() { - return del('.publish'); -} - -exports.deployDocs = series(deployToGithubPages, clean); diff --git a/docs/openapi.yaml b/docs/openapi.yaml index a7623a7b9..e8ae62bac 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -89322,7 +89322,8 @@ paths: $TTL 3600 - _https._tcp URI 10 1 "https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json" + _https._tcp URI 10 1 + "https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json" required: - zonefile 4XX: @@ -89476,7 +89477,8 @@ paths: $TTL 3600 - _http._tcp IN URI 10 1 "https://gaia.blockstack.org/hub/1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs/0/profile.json" + _http._tcp IN URI 10 1 + "https://gaia.blockstack.org/hub/1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs/0/profile.json" zonefile_hash: 37aecf837c6ae9bdc9dbd98a268f263dacd00361 /v1/namespaces/: get: diff --git a/docs/package-lock.json b/docs/package-lock.json deleted file mode 100644 index 6a2f7c0d7..000000000 --- a/docs/package-lock.json +++ /dev/null @@ -1,8582 +0,0 @@ -{ - "name": "@stacks/stacks-blockchain-api-types", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@stacks/stacks-blockchain-api-types", - "version": "0.1.0", - "license": "ISC", - "devDependencies": { - "@redocly/cli": "1.19.0", - "@types/node": "^18.13.0", - "del": "5.1.0", - "gulp": "4.0.2", - "gulp-gh-pages": "0.6.0-6", - "npm-run-all": "4.1.5", - "openapi-to-postmanv2": "2.13.0", - "ts-node": "^10.8.2", - "typescript": "^4.7.4" - } - }, - "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@cfaester/enzyme-adapter-react-18": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cfaester/enzyme-adapter-react-18/-/enzyme-adapter-react-18-0.8.0.tgz", - "integrity": "sha512-3Z3ThTUouHwz8oIyhTYQljEMNRFtlVyc3VOOHCbxs47U6cnXs8K9ygi/c1tv49s7MBlTXeIcuN+Ttd9aPtILFQ==", - "dev": true, - "dependencies": { - "enzyme-shallow-equal": "^1.0.0", - "function.prototype.name": "^1.1.6", - "has": "^1.0.4", - "react-is": "^18.2.0", - "react-shallow-renderer": "^16.15.0" - }, - "peerDependencies": { - "enzyme": "^3.11.0", - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", - "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", - "dev": true, - "dependencies": { - "@emotion/memoize": "^0.8.1" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", - "dev": true - }, - "node_modules/@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", - "dev": true - }, - "node_modules/@exodus/schemasafe": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "dev": true - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@redocly/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@redocly/cli": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-1.19.0.tgz", - "integrity": "sha512-ev6J0eD+quprvW9PVCl9JmRFZbj6cuK+mnYPAjcrPvesy2RF752fflcpgQjGnyFaGb1Cj+DiwDi3dYr3EAp04A==", - "dev": true, - "dependencies": { - "@redocly/openapi-core": "1.19.0", - "abort-controller": "^3.0.0", - "chokidar": "^3.5.1", - "colorette": "^1.2.0", - "core-js": "^3.32.1", - "form-data": "^4.0.0", - "get-port-please": "^3.0.1", - "glob": "^7.1.6", - "handlebars": "^4.7.6", - "mobx": "^6.0.4", - "node-fetch": "^2.6.1", - "pluralize": "^8.0.0", - "react": "^17.0.0 || ^18.2.0", - "react-dom": "^17.0.0 || ^18.2.0", - "redoc": "~2.1.5", - "semver": "^7.5.2", - "simple-websocket": "^9.0.0", - "styled-components": "^6.0.7", - "yargs": "17.0.1" - }, - "bin": { - "openapi": "bin/cli.js", - "redocly": "bin/cli.js" - }, - "engines": { - "node": ">=14.19.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@redocly/config": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.7.0.tgz", - "integrity": "sha512-6GKxTo/9df0654Mtivvr4lQnMOp+pRj9neVywmI5+BwfZLTtkJnj2qB3D6d8FHTr4apsNOf6zTa5FojX0Evh4g==", - "dev": true - }, - "node_modules/@redocly/openapi-core": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.19.0.tgz", - "integrity": "sha512-ezK6qr80sXvjDgHNrk/zmRs9vwpIAeHa0T/qmo96S+ib4ThQ5a8f3qjwEqxMeVxkxCTbkaY9sYSJKOxv4ejg5w==", - "dev": true, - "dependencies": { - "@redocly/ajv": "^8.11.0", - "@redocly/config": "^0.7.0", - "colorette": "^1.2.0", - "https-proxy-agent": "^7.0.4", - "js-levenshtein": "^1.1.6", - "js-yaml": "^4.1.0", - "lodash.isequal": "^4.5.0", - "minimatch": "^5.0.1", - "node-fetch": "^2.6.1", - "pluralize": "^8.0.0", - "yaml-ast-parser": "0.0.43" - }, - "engines": { - "node": ">=14.19.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.19.43", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", - "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/stylis": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", - "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", - "dev": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", - "dev": true, - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", - "dev": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", - "dev": true, - "dependencies": { - "buffer-equal": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", - "dev": true, - "dependencies": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.filter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz", - "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-array-method-boxes-properly": "^1.0.0", - "es-object-atoms": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", - "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", - "dev": true - }, - "node_modules/async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", - "dev": true, - "dependencies": { - "async-done": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", - "dev": true, - "dependencies": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "peer": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", - "dev": true, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true - }, - "node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelize": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/charset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz", - "integrity": "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dev": true, - "peer": true, - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dev": true, - "peer": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true - }, - "node_modules/cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", - "dev": true, - "dependencies": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/compute-gcd": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", - "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", - "dev": true, - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "node_modules/compute-lcm": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", - "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", - "dev": true, - "dependencies": { - "compute-gcd": "^1.2.1", - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", - "dev": true, - "dependencies": { - "each-props": "^1.3.2", - "is-plain-object": "^5.0.0" - } - }, - "node_modules/core-js": { - "version": "3.38.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.0.tgz", - "integrity": "sha512-XPpwqEodRljce9KswjZShh95qJ1URisBeKCjUdq27YdenkslVe7OO0ZJhlYXAChW7OhXaRLl8AAba7IBfoIHug==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "peer": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-to-react-native": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", - "dev": true, - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true - }, - "node_modules/d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decko": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz", - "integrity": "sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==", - "dev": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "dependencies": { - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "dev": true, - "dependencies": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/discontinuous-range": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", - "dev": true, - "peer": true - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "peer": true - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/dompurify": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", - "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==", - "dev": true - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "peer": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "node_modules/each-props/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/enzyme": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz", - "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==", - "dev": true, - "peer": true, - "dependencies": { - "array.prototype.flat": "^1.2.3", - "cheerio": "^1.0.0-rc.3", - "enzyme-shallow-equal": "^1.0.1", - "function.prototype.name": "^1.1.2", - "has": "^1.0.3", - "html-element-map": "^1.2.0", - "is-boolean-object": "^1.0.1", - "is-callable": "^1.1.5", - "is-number-object": "^1.0.4", - "is-regex": "^1.0.5", - "is-string": "^1.0.5", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.7.0", - "object-is": "^1.0.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1", - "object.values": "^1.1.1", - "raf": "^3.4.1", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.2.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/enzyme-shallow-equal": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz", - "integrity": "sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0", - "object-is": "^1.1.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true, - "peer": true - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "peer": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "dev": true, - "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", - "dev": true - }, - "node_modules/fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fined/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flex-exec": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flex-exec/-/flex-exec-1.0.0.tgz", - "integrity": "sha512-YkwyKiTabXXJrcNLu9H5OQLwIhDPNEC3SBIhpuocrArjEbp1NDZtP0UGBip5ezc6KUgmXilXtE2yj7CqI9cnKQ==", - "dev": true, - "engines": { - "node": ">= v0.10.1" - } - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "dev": true - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port-please": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", - "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", - "dev": true - }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gift": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/gift/-/gift-0.10.2.tgz", - "integrity": "sha512-wC9aKnQpjfOTWX+JG4DPJkS89ux6sl8EN4hXhv/2vBoXCDTEz1JiTeGTSeuKYlCqIgUFM1JwPVym34Sys3hvzw==", - "dev": true, - "dependencies": { - "flex-exec": "^1.0.0", - "underscore": "^1.8.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-stream/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-watcher/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/glob-watcher/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/micromatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/glob-watcher/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/gulp-cli/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "node_modules/gulp-cli/node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "node_modules/gulp-cli/node_modules/yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - }, - "node_modules/gulp-gh-pages": { - "version": "0.6.0-6", - "resolved": "https://registry.npmjs.org/gulp-gh-pages/-/gulp-gh-pages-0.6.0-6.tgz", - "integrity": "sha512-9G3Z4THBrYaONcmy/3Z1t7Y0grzjcXH5YiZh/E+s4DREpfLBHy5qZyGLcc3R9hjDS/QJf+z3KfzWu8mhG6E0CA==", - "dev": true, - "dependencies": { - "fancy-log": "^1.3.2", - "gift": "^0.10.2", - "inspect-with-kind": "^1.0.4", - "plugin-error": "^1.0.1", - "rimraf": "^2.6.2", - "vinyl": "^2.2.0", - "vinyl-fs": "^3.0.3" - } - }, - "node_modules/gulp-gh-pages/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", - "dev": true, - "dependencies": { - "glogg": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-element-map": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", - "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", - "dev": true, - "peer": true, - "dependencies": { - "array.prototype.filter": "^1.0.0", - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-reasons": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/http-reasons/-/http-reasons-0.1.0.tgz", - "integrity": "sha512-P6kYh0lKZ+y29T2Gqz+RlC9WBLhKe8kDmcJ+A+611jFfxdPsbMRQ5aNmFRM3lENqFkK+HTTL+tlQviAiv0AbLQ==", - "dev": true - }, - "node_modules/http2-client": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", - "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", - "dev": true - }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inspect-with-kind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", - "integrity": "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - } - }, - "node_modules/inspect-with-kind/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", - "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "dev": true, - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", - "dev": true, - "peer": true - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "dev": true, - "dependencies": { - "foreach": "^2.0.4" - } - }, - "node_modules/json-schema-compare": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", - "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.4" - } - }, - "node_modules/json-schema-merge-allof": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", - "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", - "dev": true, - "dependencies": { - "compute-lcm": "^1.1.2", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.20" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, - "node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", - "dev": true, - "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", - "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", - "dev": true, - "dependencies": { - "flush-write-stream": "^1.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/liftoff/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liquid-json": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/liquid-json/-/liquid-json-0.3.1.tgz", - "integrity": "sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", - "dev": true, - "peer": true - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true, - "peer": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/make-iterator/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mark.js": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", - "dev": true - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", - "dev": true, - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/matchdep/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/matchdep/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-format": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mime-format/-/mime-format-2.0.1.tgz", - "integrity": "sha512-XxU3ngPbEnrYnNbIX+lYSaYg0M01v6p2ntd2YaFksTu0vayaw5OJvbdRyWs07EYRlLED5qadUZ+xo+XhOvFhwg==", - "dev": true, - "dependencies": { - "charset": "^1.0.0" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mobx": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.13.1.tgz", - "integrity": "sha512-ekLRxgjWJr8hVxj9ZKuClPwM/iHckx3euIJ3Np7zLVNtqJvfbbq7l370W/98C8EabdQ1pB5Jd3BbDWxJPNnaOg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - } - }, - "node_modules/mobx-react": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-9.1.1.tgz", - "integrity": "sha512-gVV7AdSrAAxqXOJ2bAbGa5TkPqvITSzaPiiEkzpW4rRsMhSec7C2NBCJYILADHKp2tzOAIETGRsIY0UaCV5aEw==", - "dev": true, - "dependencies": { - "mobx-react-lite": "^4.0.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - }, - "peerDependencies": { - "mobx": "^6.9.0", - "react": "^16.8.0 || ^17 || ^18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/mobx-react-lite": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-4.0.7.tgz", - "integrity": "sha512-RjwdseshK9Mg8On5tyJZHtGD+J78ZnCnRaxeQDSiciKVQDUbfZcXhmld0VMxAwvcTnPEHZySGGewm467Fcpreg==", - "dev": true, - "dependencies": { - "use-sync-external-store": "^1.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - }, - "peerDependencies": { - "mobx": "^6.9.0", - "react": "^16.8.0 || ^17 || ^18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/moo": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", - "dev": true, - "peer": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/nan": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", - "dev": true, - "optional": true - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nearley": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", - "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", - "dev": true, - "peer": true, - "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" - }, - "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch-h2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", - "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", - "dev": true, - "dependencies": { - "http2-client": "^1.2.5" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-readfiles": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", - "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", - "dev": true, - "dependencies": { - "es6-promise": "^3.2.1" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "dependencies": { - "once": "^1.3.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm-run-all/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "peer": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oas-kit-common": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", - "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/oas-linter": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", - "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", - "dev": true, - "dependencies": { - "@exodus/schemasafe": "^1.0.0-rc.2", - "should": "^13.2.1", - "yaml": "^1.10.0" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-resolver": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", - "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", - "dev": true, - "dependencies": { - "node-fetch-h2": "^2.3.0", - "oas-kit-common": "^1.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - }, - "bin": { - "resolve": "resolve.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-resolver-browser": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/oas-resolver-browser/-/oas-resolver-browser-2.5.2.tgz", - "integrity": "sha512-L3ugWyBHOpKLT+lb+pFXCOpk3byh6usis5T9u9mfu92jH5bR6YK8MA2bebUTIjY7I4415PzDeZcmcc+i7X05MA==", - "dev": true, - "dependencies": { - "node-fetch-h2": "^2.3.0", - "oas-kit-common": "^1.0.8", - "path-browserify": "^1.0.1", - "reftools": "^1.1.6", - "yaml": "^1.10.0", - "yargs": "^15.3.1" - }, - "bin": { - "resolve": "resolve.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-resolver-browser/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/oas-resolver-browser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/oas-resolver-browser/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/oas-resolver-browser/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/oas-resolver-browser/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/oas-resolver-browser/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/oas-resolver-browser/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/oas-resolver-browser/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/oas-resolver-browser/node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "node_modules/oas-resolver-browser/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/oas-resolver-browser/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/oas-resolver-browser/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/oas-resolver-browser/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/oas-schema-walker": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", - "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", - "dev": true, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-validator": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", - "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "oas-kit-common": "^1.0.8", - "oas-linter": "^3.2.2", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "reftools": "^1.1.9", - "should": "^13.2.1", - "yaml": "^1.10.0" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dev": true, - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/openapi-sampler": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.5.1.tgz", - "integrity": "sha512-tIWIrZUKNAsbqf3bd9U1oH6JEXo8LNYuDlXw26By67EygpjT+ArFnsxxyTMjFWRfbqo5ozkvgSQDK69Gd8CddA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.7", - "json-pointer": "0.6.2" - } - }, - "node_modules/openapi-to-postmanv2": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/openapi-to-postmanv2/-/openapi-to-postmanv2-2.13.0.tgz", - "integrity": "sha512-0Ht8uIGm272CYjFgcipJx1PBsipKY9B9VONQzY+DPPiULRm1IeqhuHo0/ikk4i9Hexi47987wWeYXaXG2NqtkQ==", - "dev": true, - "dependencies": { - "ajv": "6.12.6", - "async": "3.2.2", - "commander": "2.20.3", - "js-yaml": "3.14.1", - "json-schema-merge-allof": "0.8.1", - "lodash": "4.17.21", - "oas-resolver-browser": "2.5.2", - "path-browserify": "1.0.1", - "postman-collection": "4.0.0", - "yaml": "1.10.2" - }, - "bin": { - "openapi2postmanv2": "bin/openapi2postmanv2.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/openapi-to-postmanv2/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/openapi-to-postmanv2/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "peer": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dev": true, - "peer": true, - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true - }, - "node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", - "dev": true, - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/perfect-scrollbar": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz", - "integrity": "sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g==", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true, - "peer": true - }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/polished": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", - "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.17.8" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/postman-collection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-4.0.0.tgz", - "integrity": "sha512-vDrXG/dclSu6RMqPqBz4ZqoQBwcj/a80sJYsQZmzWJ6dWgXiudPhwu6Vm3C1Hy7zX5W8A6am1Z6vb/TB4eyURA==", - "dev": true, - "dependencies": { - "faker": "5.5.3", - "file-type": "3.9.0", - "http-reasons": "0.1.0", - "iconv-lite": "0.6.3", - "liquid-json": "0.3.1", - "lodash": "4.17.21", - "mime-format": "2.0.1", - "mime-types": "2.1.31", - "postman-url-encoder": "3.0.1", - "semver": "7.3.5", - "uuid": "8.3.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postman-collection/node_modules/mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/postman-collection/node_modules/mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "dependencies": { - "mime-db": "1.48.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/postman-collection/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postman-url-encoder": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postman-url-encoder/-/postman-url-encoder-3.0.1.tgz", - "integrity": "sha512-dMPqXnkDlstM2Eya+Gw4MIGWEan8TzldDcUKZIhZUsJ/G5JjubfQPhFhVWKzuATDMvwvrWbSjF+8VmAvbu6giw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dev": true, - "peer": true, - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/railroad-diagrams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", - "dev": true, - "peer": true - }, - "node_modules/randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", - "dev": true, - "peer": true, - "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, - "node_modules/react-shallow-renderer": { - "version": "16.15.0", - "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", - "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-tabs": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-6.0.2.tgz", - "integrity": "sha512-aQXTKolnM28k3KguGDBSAbJvcowOQr23A+CUJdzJtOSDOtTwzEaJA+1U4KwhNL9+Obe+jFS7geuvA7ICQPXOnQ==", - "dev": true, - "dependencies": { - "clsx": "^2.0.0", - "prop-types": "^15.5.0" - }, - "peerDependencies": { - "react": "^18.0.0" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redoc": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.1.5.tgz", - "integrity": "sha512-POSbVg+7WLf+/5/c6GWLxL7+9t2D+1WlZdLN0a6qaCQc+ih3XYzteRBkXEN5kjrYrRNjdspfxTZkDLN5WV3Tzg==", - "dev": true, - "dependencies": { - "@cfaester/enzyme-adapter-react-18": "^0.8.0", - "@redocly/openapi-core": "^1.4.0", - "classnames": "^2.3.2", - "decko": "^1.2.0", - "dompurify": "^3.0.6", - "eventemitter3": "^5.0.1", - "json-pointer": "^0.6.2", - "lunr": "^2.3.9", - "mark.js": "^8.11.1", - "marked": "^4.3.0", - "mobx-react": "^9.1.1", - "openapi-sampler": "^1.5.0", - "path-browserify": "^1.0.1", - "perfect-scrollbar": "^1.5.5", - "polished": "^4.2.2", - "prismjs": "^1.29.0", - "prop-types": "^15.8.1", - "react-tabs": "^6.0.2", - "slugify": "~1.4.7", - "stickyfill": "^1.1.1", - "swagger2openapi": "^7.0.8", - "url-template": "^2.0.8" - }, - "engines": { - "node": ">=6.9", - "npm": ">=3.0.0" - }, - "peerDependencies": { - "core-js": "^3.1.4", - "mobx": "^6.0.4", - "react": "^16.8.4 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", - "styled-components": "^4.1.1 || ^5.1.1 || ^6.0.5" - } - }, - "node_modules/reftools": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", - "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", - "dev": true, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", - "dev": true, - "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", - "dev": true, - "dependencies": { - "value-or-function": "^3.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rst-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", - "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", - "dev": true, - "peer": true, - "dependencies": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", - "dev": true, - "dependencies": { - "sver-compat": "^1.5.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "dev": true, - "dependencies": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } - }, - "node_modules/should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "dev": true, - "dependencies": { - "should-type": "^1.4.0" - } - }, - "node_modules/should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", - "dev": true, - "dependencies": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "node_modules/should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", - "dev": true - }, - "node_modules/should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "dev": true, - "dependencies": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" - } - }, - "node_modules/should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "dev": true - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-websocket": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.1.0.tgz", - "integrity": "sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "debug": "^4.3.1", - "queue-microtask": "^1.2.2", - "randombytes": "^2.1.0", - "readable-stream": "^3.6.0", - "ws": "^7.4.2" - } - }, - "node_modules/simple-websocket/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slugify": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz", - "integrity": "sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", - "dev": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stickyfill": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz", - "integrity": "sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA==", - "dev": true - }, - "node_modules/stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", - "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/styled-components": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.12.tgz", - "integrity": "sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA==", - "dev": true, - "dependencies": { - "@emotion/is-prop-valid": "1.2.2", - "@emotion/unitless": "0.8.1", - "@types/stylis": "4.2.5", - "css-to-react-native": "3.2.0", - "csstype": "3.1.3", - "postcss": "8.4.38", - "shallowequal": "1.1.0", - "stylis": "4.3.2", - "tslib": "2.6.2" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0" - } - }, - "node_modules/stylis": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", - "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", - "dev": true - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", - "dev": true, - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/swagger2openapi": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", - "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "node-fetch": "^2.6.1", - "node-fetch-h2": "^2.3.0", - "node-readfiles": "^0.2.0", - "oas-kit-common": "^1.0.8", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "oas-validator": "^5.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - }, - "bin": { - "boast": "boast.js", - "oas-validate": "oas-validate.js", - "swagger2openapi": "swagger2openapi.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", - "dev": true, - "dependencies": { - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/type": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", - "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", - "dev": true - }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", - "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/underscore": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", - "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", - "dev": true - }, - "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "dev": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate.io-array": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==", - "dev": true - }, - "node_modules/validate.io-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==", - "dev": true - }, - "node_modules/validate.io-integer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", - "dev": true, - "dependencies": { - "validate.io-number": "^1.0.3" - } - }, - "node_modules/validate.io-integer-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", - "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", - "dev": true, - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-integer": "^1.0.4" - } - }, - "node_modules/validate.io-number": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==", - "dev": true - }, - "node_modules/value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", - "dev": true, - "dependencies": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", - "dev": true - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yaml-ast-parser": { - "version": "0.0.43", - "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", - "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", - "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - } - } -} diff --git a/docs/package.json b/docs/package.json deleted file mode 100644 index cdc92e92a..000000000 --- a/docs/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "@stacks/stacks-blockchain-api-types", - "version": "0.1.0", - "access": "public", - "description": "TypeScript descriptions of Stacks 2.0 blockchain API entities", - "main": "index.js", - "types": "index.d.ts", - "scripts": { - "build": "rimraf .tmp && run-s generate:git-info generate:openapi generate:docs generate:postman", - "test": "echo 'ok'", - "generate:git-info": "npm run generate:git-info --prefix ..", - "generate:openapi": "npm run generate:openapi --prefix ..", - "generate:docs": "redocly build-docs openapi.yaml --output .tmp/index.html", - "generate:postman": "openapi2postmanv2 --spec openapi.yaml --output .tmp/collection.json --options folderStrategy=Tags,requestParametersResolution=Example,exampleParametersResolution=Example,schemaFaker=false 2>/dev/null", - "deploy:docs": "npm run build && gulp deployDocs" - }, - "author": "@hirosystems", - "license": "ISC", - "repository": { - "type": "git", - "url": "https://github.com/hirosystems/stacks-blockchain-api.git", - "directory": "docs" - }, - "files": [ - "openapi.yaml", - "index.d.ts", - "generated.d.ts", - "socket-io/**/*", - "api/**/*", - "entities/**/*" - ], - "devDependencies": { - "@redocly/cli": "1.19.0", - "@types/node": "^18.13.0", - "del": "5.1.0", - "gulp": "4.0.2", - "gulp-gh-pages": "0.6.0-6", - "npm-run-all": "4.1.5", - "openapi-to-postmanv2": "2.13.0", - "ts-node": "^10.8.2", - "typescript": "^4.7.4" - } -} diff --git a/docs/readme.md b/docs/readme.md deleted file mode 100644 index faee8e434..000000000 --- a/docs/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# @stacks/stacks-blockchain-api-types - -This package exports TypeScript type representations of the Stacks Blockchain API. - -By convention, the JSON Schema `title` property is used to describe the name of the type. - diff --git a/docs/socket-io/index.d.ts b/docs/socket-io/index.d.ts deleted file mode 100644 index 136f43d6a..000000000 --- a/docs/socket-io/index.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import type { - AddressStxBalanceResponse, - AddressTransactionWithTransfers, - Block, - Microblock, - Transaction, - MempoolTransaction, - NftEvent -} from '..'; - -export type AddressTransactionTopic = `address-transaction:${string}`; -export type AddressStxBalanceTopic = `address-stx-balance:${string}`; -export type TransactionTopic = `transaction:${string}`; -export type NftAssetEventTopic = `nft-asset-event:${string}+${string}`; -export type NftCollectionEventTopic = `nft-collection-event:${string}`; -export type Topic = - | 'block' - | 'microblock' - | 'mempool' - | 'nft-event' - | AddressTransactionTopic - | AddressStxBalanceTopic - | TransactionTopic - | NftAssetEventTopic - | NftCollectionEventTopic; - -export interface ClientToServerMessages { - subscribe: (topic: Topic | Topic[], callback: (error: string | null) => void) => void; - unsubscribe: (...topic: Topic[]) => void; -} - -export interface ServerToClientMessages { - block: (block: Block) => void; - microblock: (microblock: Microblock) => void; - mempool: (transaction: MempoolTransaction) => void; - 'nft-event': (event: NftEvent) => void; - [key: TransactionTopic]: (transaction: Transaction | MempoolTransaction) => void; - [key: NftAssetEventTopic]: (assetIdentifier: string, value: string, event: NftEvent) => void; - [key: NftCollectionEventTopic]: (assetIdentifier: string, event: NftEvent) => void; - [key: AddressTransactionTopic]: (address: string, stxBalance: AddressTransactionWithTransfers) => void; - [key: AddressStxBalanceTopic]: (address: string, stxBalance: AddressStxBalanceResponse) => void; -} diff --git a/docs/tsconfig.json b/docs/tsconfig.json deleted file mode 100644 index e2b9102df..000000000 --- a/docs/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "compilerOptions": { - "target": "es2019", - "module": "commonjs", - "moduleResolution": "node", - "declaration": false, - "strict": true, - "outDir": "lib", - "sourceMap": false, - "esModuleInterop": false, - "allowSyntheticDefaultImports": false, - "resolveJsonModule": true, - "baseUrl": "." - }, - "include": ["./**/*.ts"], - "exclude": ["./index.d.ts", "./generated.d.ts", "socket-io/socket-io.d.ts"] -} diff --git a/package-lock.json b/package-lock.json index 4fd040d9d..a45297483 100644 --- a/package-lock.json +++ b/package-lock.json @@ -80,6 +80,7 @@ "@actions/io": "1.1.1", "@commitlint/cli": "19.2.2", "@commitlint/config-conventional": "10.0.0", + "@redocly/cli": "1.19.0", "@stacks/eslint-config": "1.2.0", "@types/cors": "2.8.12", "@types/dotenv-flow": "3.2.0", @@ -108,6 +109,8 @@ "jest": "29.7.0", "nock": "13.5.4", "nodemon": "3.1.0", + "openapi-to-postmanv2": "4.23.1", + "openapi-typescript": "7.3.0", "pg-connection-string": "2.5.0", "prettier": "2.8.8", "rimraf": "5.0.0", @@ -127,15 +130,6 @@ "utf-8-validate": "5.0.7" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@actions/core": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz", @@ -168,9 +162,9 @@ } }, "node_modules/@actions/http-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", - "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", + "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", "dev": true, "dependencies": { "tunnel": "^0.0.6", @@ -184,13 +178,13 @@ "dev": true }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -208,114 +202,43 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -340,14 +263,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -355,14 +278,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -394,63 +317,29 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -460,105 +349,82 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -573,21 +439,6 @@ "node": ">=4" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -619,10 +470,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dev": true, + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -691,12 +545,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -793,12 +647,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -808,9 +662,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -820,34 +674,31 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -864,13 +715,13 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -883,6 +734,24 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cfaester/enzyme-adapter-react-18": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cfaester/enzyme-adapter-react-18/-/enzyme-adapter-react-18-0.8.0.tgz", + "integrity": "sha512-3Z3ThTUouHwz8oIyhTYQljEMNRFtlVyc3VOOHCbxs47U6cnXs8K9ygi/c1tv49s7MBlTXeIcuN+Ttd9aPtILFQ==", + "dev": true, + "dependencies": { + "enzyme-shallow-equal": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has": "^1.0.4", + "react-is": "^18.2.0", + "react-shallow-renderer": "^16.15.0" + }, + "peerDependencies": { + "enzyme": "^3.11.0", + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/@commitlint/cli": { "version": "19.2.2", "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.2.2.tgz", @@ -904,1706 +773,1599 @@ "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "node_modules/@commitlint/config-conventional": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-10.0.0.tgz", + "integrity": "sha512-M9l7hh2a1GB9nQ/Gm+aDLGPmzGdpgxqJoSmrbTxDlapJDyaL7FPe5aQf66F50Eq3j0bmaRaJihFCA6mIUBQAag==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "conventional-changelog-conventionalcommits": "^4.3.1" }, "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=v10.22.0" } }, - "node_modules/@commitlint/cli/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "node_modules/@commitlint/config-validator": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz", + "integrity": "sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==", "dev": true, - "engines": { - "node": ">=16" + "dependencies": { + "@commitlint/types": "^19.0.3", + "ajv": "^8.11.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "node_modules/@commitlint/ensure": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz", + "integrity": "sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==", "dev": true, + "dependencies": { + "@commitlint/types": "^19.0.3", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, "engines": { - "node": ">=16.17.0" + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "node_modules/@commitlint/execute-rule": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz", + "integrity": "sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "node_modules/@commitlint/format": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.3.0.tgz", + "integrity": "sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "@commitlint/types": "^19.0.3", + "chalk": "^5.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "node_modules/@commitlint/is-ignored": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.2.2.tgz", + "integrity": "sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==", "dev": true, "dependencies": { - "path-key": "^4.0.0" + "@commitlint/types": "^19.0.3", + "semver": "^7.6.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/@commitlint/lint": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.2.2.tgz", + "integrity": "sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==", "dev": true, "dependencies": { - "mimic-fn": "^4.0.0" + "@commitlint/is-ignored": "^19.2.2", + "@commitlint/parse": "^19.0.3", + "@commitlint/rules": "^19.0.3", + "@commitlint/types": "^19.0.3" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "node_modules/@commitlint/load": { + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.4.0.tgz", + "integrity": "sha512-I4lCWaEZYQJ1y+Y+gdvbGAx9pYPavqZAZ3/7/8BpWh+QjscAn8AjsUpLV2PycBsEx7gupq5gM4BViV9xwTIJuw==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "@commitlint/config-validator": "^19.0.3", + "@commitlint/execute-rule": "^19.0.0", + "@commitlint/resolve-extends": "^19.1.0", + "@commitlint/types": "^19.0.3", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^5.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@commitlint/message": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz", + "integrity": "sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==", "dev": true, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/@commitlint/parse": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.0.3.tgz", + "integrity": "sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "@commitlint/types": "^19.0.3", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=v18" } }, - "node_modules/@commitlint/config-conventional": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-10.0.0.tgz", - "integrity": "sha512-M9l7hh2a1GB9nQ/Gm+aDLGPmzGdpgxqJoSmrbTxDlapJDyaL7FPe5aQf66F50Eq3j0bmaRaJihFCA6mIUBQAag==", + "node_modules/@commitlint/read": { + "version": "19.4.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.4.0.tgz", + "integrity": "sha512-r95jLOEZzKDakXtnQub+zR3xjdnrl2XzerPwm7ch1/cc5JGq04tyaNpa6ty0CRCWdVrk4CZHhqHozb8yZwy2+g==", "dev": true, "dependencies": { - "conventional-changelog-conventionalcommits": "^4.3.1" + "@commitlint/top-level": "^19.0.0", + "@commitlint/types": "^19.0.3", + "execa": "^8.0.1", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, - "node_modules/@commitlint/config-validator": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz", - "integrity": "sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==", + "node_modules/@commitlint/resolve-extends": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz", + "integrity": "sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==", "dev": true, "dependencies": { + "@commitlint/config-validator": "^19.0.3", "@commitlint/types": "^19.0.3", - "ajv": "^8.11.0" + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/ensure": { + "node_modules/@commitlint/rules": { "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz", - "integrity": "sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.0.3.tgz", + "integrity": "sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==", "dev": true, "dependencies": { + "@commitlint/ensure": "^19.0.3", + "@commitlint/message": "^19.0.0", + "@commitlint/to-lines": "^19.0.0", "@commitlint/types": "^19.0.3", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" + "execa": "^8.0.1" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/execute-rule": { + "node_modules/@commitlint/to-lines": { "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz", - "integrity": "sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.0.0.tgz", + "integrity": "sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==", "dev": true, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/format": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.0.3.tgz", - "integrity": "sha512-QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==", + "node_modules/@commitlint/top-level": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.0.0.tgz", + "integrity": "sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", - "chalk": "^5.3.0" + "find-up": "^7.0.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/format/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@commitlint/is-ignored": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.2.2.tgz", - "integrity": "sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==", + "node_modules/@commitlint/types": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz", + "integrity": "sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", - "semver": "^7.6.0" + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/lint": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.2.2.tgz", - "integrity": "sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^19.2.2", - "@commitlint/parse": "^19.0.3", - "@commitlint/rules": "^19.0.3", - "@commitlint/types": "^19.0.3" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": ">=v18" + "node": ">=12" } }, - "node_modules/@commitlint/load": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.2.0.tgz", - "integrity": "sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/execute-rule": "^19.0.0", - "@commitlint/resolve-extends": "^19.1.0", - "@commitlint/types": "^19.0.3", - "chalk": "^5.3.0", - "cosmiconfig": "^9.0.0", - "cosmiconfig-typescript-loader": "^5.0.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0" - }, - "engines": { - "node": ">=v18" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@commitlint/load/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "dependencies": { + "@emotion/memoize": "^0.8.1" } }, - "node_modules/@commitlint/load/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "dev": true + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "dev": true + }, + "node_modules/@eslint/eslintrc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=14" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://opencollective.com/eslint" } }, - "node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", - "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "jiti": "^1.19.1" - }, - "engines": { - "node": ">=v16" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=8.2", - "typescript": ">=4" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@commitlint/message": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz", - "integrity": "sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==", + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">=v18" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@commitlint/parse": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.0.3.tgz", - "integrity": "sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "@commitlint/types": "^19.0.3", - "conventional-changelog-angular": "^7.0.0", - "conventional-commits-parser": "^5.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=v18" + "node": "*" } }, - "node_modules/@commitlint/read": { - "version": "19.2.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.2.1.tgz", - "integrity": "sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==", - "dev": true, + "node_modules/@exodus/schemasafe": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", + "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", + "dev": true + }, + "node_modules/@faker-js/faker": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-5.5.3.tgz", + "integrity": "sha512-R11tGE6yIFwqpaIqcfkcg7AICXzFg14+5h5v0TfF/9+RMDL6jhzCy/pxHVOfbALGdtVYdt6JdR21tuxEgl34dw==", + "dev": true + }, + "node_modules/@fastify/ajv-compiler": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.6.0.tgz", + "integrity": "sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==", "dependencies": { - "@commitlint/top-level": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", - "git-raw-commits": "^4.0.0", - "minimist": "^1.2.8" - }, - "engines": { - "node": ">=v18" + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "fast-uri": "^2.0.0" } }, - "node_modules/@commitlint/read/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, + "node_modules/@fastify/ajv-compiler/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "ajv": "^8.0.0" }, - "engines": { - "node": ">=16.17" + "peerDependencies": { + "ajv": "^8.0.0" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/@commitlint/read/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@fastify/ajv-compiler/node_modules/fast-uri": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz", + "integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==" }, - "node_modules/@commitlint/read/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", "engines": { - "node": ">=16.17.0" + "node": ">=14" } }, - "node_modules/@commitlint/read/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@fastify/cors": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-9.0.1.tgz", + "integrity": "sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==", + "dependencies": { + "fastify-plugin": "^4.0.0", + "mnemonist": "0.39.6" } }, - "node_modules/@commitlint/read/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@fastify/deepmerge": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-1.3.0.tgz", + "integrity": "sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==" }, - "node_modules/@commitlint/read/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, + "node_modules/@fastify/error": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz", + "integrity": "sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==" + }, + "node_modules/@fastify/fast-json-stringify-compiler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", + "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "fast-json-stringify": "^5.7.0" } }, - "node_modules/@commitlint/read/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, + "node_modules/@fastify/formbody": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@fastify/formbody/-/formbody-7.4.0.tgz", + "integrity": "sha512-H3C6h1GN56/SMrZS8N2vCT2cZr7mIHzBHzOBa5OPpjfB/D6FzP9mMpE02ZzrFX0ANeh0BAJdoXKOF2e7IbV+Og==", "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "fast-querystring": "^1.0.0", + "fastify-plugin": "^4.0.0" } }, - "node_modules/@commitlint/read/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@fastify/http-proxy": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@fastify/http-proxy/-/http-proxy-9.5.0.tgz", + "integrity": "sha512-1iqIdV10d5k9YtfHq9ylX5zt1NiM50fG+rIX40qt00R694sqWso3ukyTFZVk33SDoSiBW8roB7n11RUVUoN+Ag==", + "dependencies": { + "@fastify/reply-from": "^9.0.0", + "fast-querystring": "^1.1.2", + "fastify-plugin": "^4.5.0", + "ws": "^8.4.2" } }, - "node_modules/@commitlint/read/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, + "node_modules/@fastify/http-proxy/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "engines": { - "node": ">=14" + "node": ">=10.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@commitlint/read/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@commitlint/resolve-extends": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz", - "integrity": "sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==", - "dev": true, + "node_modules/@fastify/merge-json-schemas": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz", + "integrity": "sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==", "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/types": "^19.0.3", - "global-directory": "^4.0.1", - "import-meta-resolve": "^4.0.0", - "lodash.mergewith": "^4.6.2", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=v18" + "fast-deep-equal": "^3.1.3" } }, - "node_modules/@commitlint/rules": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.0.3.tgz", - "integrity": "sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==", - "dev": true, + "node_modules/@fastify/multipart": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-8.3.0.tgz", + "integrity": "sha512-A8h80TTyqUzaMVH0Cr9Qcm6RxSkVqmhK/MVBYHYeRRSUbUYv08WecjWKSlG2aSnD4aGI841pVxAjC+G1GafUeQ==", "dependencies": { - "@commitlint/ensure": "^19.0.3", - "@commitlint/message": "^19.0.0", - "@commitlint/to-lines": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1" - }, - "engines": { - "node": ">=v18" + "@fastify/busboy": "^2.1.0", + "@fastify/deepmerge": "^1.0.0", + "@fastify/error": "^3.0.0", + "fastify-plugin": "^4.0.0", + "secure-json-parse": "^2.4.0", + "stream-wormhole": "^1.1.0" } }, - "node_modules/@commitlint/rules/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, + "node_modules/@fastify/reply-from": { + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/@fastify/reply-from/-/reply-from-9.8.0.tgz", + "integrity": "sha512-bPNVaFhEeNI0Lyl6404YZaPFokudCplidE3QoOcr78yOy6H9sYw97p5KPYvY/NJNUHfFtvxOaSAHnK+YSiv/Mg==", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "@fastify/error": "^3.0.0", + "end-of-stream": "^1.4.4", + "fast-content-type-parse": "^1.1.0", + "fast-querystring": "^1.0.0", + "fastify-plugin": "^4.0.0", + "toad-cache": "^3.7.0", + "undici": "^5.19.1" } }, - "node_modules/@commitlint/rules/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@fastify/swagger": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.15.0.tgz", + "integrity": "sha512-zy+HEEKFqPMS2sFUsQU5X0MHplhKJvWeohBwTCkBAJA/GDYGLGUWQaETEhptiqxK7Hs0fQB9B4MDb3pbwIiCwA==", + "dependencies": { + "fastify-plugin": "^4.0.0", + "json-schema-resolver": "^2.0.0", + "openapi-types": "^12.0.0", + "rfdc": "^1.3.0", + "yaml": "^2.2.2" } }, - "node_modules/@commitlint/rules/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "engines": { - "node": ">=16.17.0" + "node_modules/@fastify/type-provider-typebox": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@fastify/type-provider-typebox/-/type-provider-typebox-4.0.0.tgz", + "integrity": "sha512-kTlN0saC/+xhcQPyBjb3YONQAMjiD/EHlCRjQjsr5E3NFjS5K8ZX5LGzXYDRjSa+sV4y8gTL5Q7FlObePv4iTA==", + "peerDependencies": { + "@sinclair/typebox": ">=0.26 <=0.32" } }, - "node_modules/@commitlint/rules/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + }, + "node_modules/@hirosystems/api-toolkit": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@hirosystems/api-toolkit/-/api-toolkit-1.6.2.tgz", + "integrity": "sha512-soL9IoRVADCm06x1sK5JHccvdAIhs4wk385lzlH/nIH3dIM7qJTQwC4gv5dCoSB4O9o0hK98sgB4xebjikPTGg==", + "dependencies": { + "@fastify/cors": "^8.0.0", + "@fastify/swagger": "^8.3.1", + "@fastify/type-provider-typebox": "^3.2.0", + "@sinclair/typebox": "^0.28.20", + "fastify": "^4.3.0", + "fastify-metrics": "^10.2.0", + "node-pg-migrate": "^6.2.2", + "pino": "^8.11.0", + "postgres": "^3.3.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "api-toolkit-git-info": "bin/api-toolkit-git-info.js" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@commitlint/rules/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" + "node_modules/@hirosystems/api-toolkit/node_modules/@fastify/cors": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-8.5.0.tgz", + "integrity": "sha512-/oZ1QSb02XjP0IK1U0IXktEsw/dUBTxJOW7IpIeO8c/tNalw/KjoNSJv1Sf6eqoBPO+TDGkifq6ynFK3v68HFQ==", + "dependencies": { + "fastify-plugin": "^4.0.0", + "mnemonist": "0.39.6" + } + }, + "node_modules/@hirosystems/api-toolkit/node_modules/@fastify/type-provider-typebox": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@fastify/type-provider-typebox/-/type-provider-typebox-3.6.0.tgz", + "integrity": "sha512-HTeOLvirfGg0u1KGao3iXn5rZpYNqlrOmyDnXSXAbWVPa+mDQTTBNs/x5uZzOB6vFAqr0Xcf7x1lxOamNSYKjw==", + "peerDependencies": { + "@sinclair/typebox": ">=0.26 <=0.32" + } + }, + "node_modules/@hirosystems/api-toolkit/node_modules/@sinclair/typebox": { + "version": "0.28.20", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.28.20.tgz", + "integrity": "sha512-QCF3BGfacwD+3CKhGsMeixnwOmX4AWgm61nKkNdRStyLVu0mpVFYlDSY8gVBOOED1oSwzbJauIWl/+REj8K5+w==" + }, + "node_modules/@hirosystems/api-toolkit/node_modules/@types/pg": { + "version": "8.11.6", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.6.tgz", + "integrity": "sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==", + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^4.0.1" + } + }, + "node_modules/@hirosystems/api-toolkit/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@hirosystems/api-toolkit/node_modules/fastify-metrics": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/fastify-metrics/-/fastify-metrics-10.6.0.tgz", + "integrity": "sha512-QIPncCnwBOEObMn+VaRhsBC1ox8qEsaiYF2sV/A1UbXj7ic70W8/HNn/hlEC2W8JQbBeZMx++o1um2fPfhsFDQ==", + "dependencies": { + "fastify-plugin": "^4.3.0", + "prom-client": "^14.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "fastify": ">=4" } }, - "node_modules/@commitlint/rules/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, + "node_modules/@hirosystems/api-toolkit/node_modules/node-pg-migrate": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/node-pg-migrate/-/node-pg-migrate-6.2.2.tgz", + "integrity": "sha512-0WYLTXpWu2doeZhiwJUW/1u21OqAFU2CMQ8YZ8VBcJ0xrdqYAjtd8GGFe5A5DM4NJdIZsqJcLPDFqY0FQsmivw==", "dependencies": { - "path-key": "^4.0.0" + "@types/pg": "^8.0.0", + "decamelize": "^5.0.0", + "mkdirp": "~1.0.0", + "yargs": "~17.3.0" + }, + "bin": { + "node-pg-migrate": "bin/node-pg-migrate" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=12.20.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "pg": ">=4.3.0 <9.0.0" } }, - "node_modules/@commitlint/rules/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, + "node_modules/@hirosystems/api-toolkit/node_modules/pg-types": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz", + "integrity": "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==", "dependencies": { - "mimic-fn": "^4.0.0" + "pg-int8": "1.0.1", + "pg-numeric": "1.0.2", + "postgres-array": "~3.0.1", + "postgres-bytea": "~3.0.0", + "postgres-date": "~2.1.0", + "postgres-interval": "^3.0.0", + "postgres-range": "^1.1.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/@commitlint/rules/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, + "node_modules/@hirosystems/api-toolkit/node_modules/postgres": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/postgres/-/postgres-3.4.4.tgz", + "integrity": "sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "individual", + "url": "https://github.com/sponsors/porsager" } }, - "node_modules/@commitlint/rules/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, + "node_modules/@hirosystems/api-toolkit/node_modules/postgres-array": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", + "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=12" } }, - "node_modules/@commitlint/rules/node_modules/strip-final-newline": { + "node_modules/@hirosystems/api-toolkit/node_modules/postgres-bytea": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", + "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", + "dependencies": { + "obuf": "~1.1.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@hirosystems/api-toolkit/node_modules/postgres-date": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", + "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/to-lines": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.0.0.tgz", - "integrity": "sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==", - "dev": true, + "node_modules/@hirosystems/api-toolkit/node_modules/postgres-interval": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", + "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", "engines": { - "node": ">=v18" + "node": ">=12" } }, - "node_modules/@commitlint/top-level": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.0.0.tgz", - "integrity": "sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==", - "dev": true, + "node_modules/@hirosystems/api-toolkit/node_modules/prom-client": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", + "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", "dependencies": { - "find-up": "^7.0.0" + "tdigest": "^0.1.1" }, "engines": { - "node": ">=v18" + "node": ">=10" } }, - "node_modules/@commitlint/top-level/node_modules/find-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", - "dev": true, + "node_modules/@hirosystems/api-toolkit/node_modules/yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", "dependencies": { - "locate-path": "^7.2.0", - "path-exists": "^5.0.0", - "unicorn-magic": "^0.1.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@commitlint/top-level/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { - "p-locate": "^6.0.0" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.10.0" } }, - "node_modules/@commitlint/top-level/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "yocto-queue": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@commitlint/top-level/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "dependencies": { - "p-limit": "^4.0.0" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@commitlint/top-level/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@commitlint/top-level/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=12.20" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/types": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz", - "integrity": "sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "@types/conventional-commits-parser": "^5.0.0", - "chalk": "^5.3.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=v18" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@commitlint/types/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "sprintf-js": "~1.0.2" } }, - "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=8" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/@fastify/ajv-compiler": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", - "integrity": "sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "dependencies": { - "ajv": "^8.11.0", - "ajv-formats": "^2.1.1", - "fast-uri": "^2.0.0" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@fastify/ajv-compiler/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "ajv": "^8.0.0" + "p-try": "^2.0.0" }, - "peerDependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">=6" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": ">=14" + "node": ">=8" } }, - "node_modules/@fastify/cors": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-9.0.1.tgz", - "integrity": "sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==", - "dependencies": { - "fastify-plugin": "^4.0.0", - "mnemonist": "0.39.6" + "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@fastify/deepmerge": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-1.3.0.tgz", - "integrity": "sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==" + "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true }, - "node_modules/@fastify/error": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.0.tgz", - "integrity": "sha512-e/mafFwbK3MNqxUcFBLgHhgxsF8UT1m8aj0dAlqEa2nJEgPsRtpHTZ3ObgrgkZ2M1eJHPTwgyUl/tXkvabsZdQ==" + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/@fastify/fast-json-stringify-compiler": { + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", - "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "fast-json-stringify": "^5.7.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@fastify/formbody": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@fastify/formbody/-/formbody-7.4.0.tgz", - "integrity": "sha512-H3C6h1GN56/SMrZS8N2vCT2cZr7mIHzBHzOBa5OPpjfB/D6FzP9mMpE02ZzrFX0ANeh0BAJdoXKOF2e7IbV+Og==", + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "fast-querystring": "^1.0.0", - "fastify-plugin": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@fastify/http-proxy": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@fastify/http-proxy/-/http-proxy-9.5.0.tgz", - "integrity": "sha512-1iqIdV10d5k9YtfHq9ylX5zt1NiM50fG+rIX40qt00R694sqWso3ukyTFZVk33SDoSiBW8roB7n11RUVUoN+Ag==", + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "@fastify/reply-from": "^9.0.0", - "fast-querystring": "^1.1.2", - "fastify-plugin": "^4.5.0", - "ws": "^8.4.2" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@fastify/http-proxy/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=10.0.0" + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { + "node-notifier": { "optional": true } } }, - "node_modules/@fastify/multipart": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@fastify/multipart/-/multipart-8.3.0.tgz", - "integrity": "sha512-A8h80TTyqUzaMVH0Cr9Qcm6RxSkVqmhK/MVBYHYeRRSUbUYv08WecjWKSlG2aSnD4aGI841pVxAjC+G1GafUeQ==", + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "@fastify/busboy": "^2.1.0", - "@fastify/deepmerge": "^1.0.0", - "@fastify/error": "^3.0.0", - "fastify-plugin": "^4.0.0", - "secure-json-parse": "^2.4.0", - "stream-wormhole": "^1.1.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@fastify/reply-from": { - "version": "9.8.0", - "resolved": "https://registry.npmjs.org/@fastify/reply-from/-/reply-from-9.8.0.tgz", - "integrity": "sha512-bPNVaFhEeNI0Lyl6404YZaPFokudCplidE3QoOcr78yOy6H9sYw97p5KPYvY/NJNUHfFtvxOaSAHnK+YSiv/Mg==", + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "@fastify/error": "^3.0.0", - "end-of-stream": "^1.4.4", - "fast-content-type-parse": "^1.1.0", - "fast-querystring": "^1.0.0", - "fastify-plugin": "^4.0.0", - "toad-cache": "^3.7.0", - "undici": "^5.19.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@fastify/swagger": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-8.15.0.tgz", - "integrity": "sha512-zy+HEEKFqPMS2sFUsQU5X0MHplhKJvWeohBwTCkBAJA/GDYGLGUWQaETEhptiqxK7Hs0fQB9B4MDb3pbwIiCwA==", + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "fastify-plugin": "^4.0.0", - "json-schema-resolver": "^2.0.0", - "openapi-types": "^12.0.0", - "rfdc": "^1.3.0", - "yaml": "^2.2.2" - } - }, - "node_modules/@fastify/swagger/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 14" + "node": ">=7.0.0" } }, - "node_modules/@fastify/type-provider-typebox": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@fastify/type-provider-typebox/-/type-provider-typebox-4.0.0.tgz", - "integrity": "sha512-kTlN0saC/+xhcQPyBjb3YONQAMjiD/EHlCRjQjsr5E3NFjS5K8ZX5LGzXYDRjSa+sV4y8gTL5Q7FlObePv4iTA==", - "peerDependencies": { - "@sinclair/typebox": ">=0.26 <=0.32" - } + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/@hirosystems/api-toolkit": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@hirosystems/api-toolkit/-/api-toolkit-1.6.2.tgz", - "integrity": "sha512-soL9IoRVADCm06x1sK5JHccvdAIhs4wk385lzlH/nIH3dIM7qJTQwC4gv5dCoSB4O9o0hK98sgB4xebjikPTGg==", + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "@fastify/cors": "^8.0.0", - "@fastify/swagger": "^8.3.1", - "@fastify/type-provider-typebox": "^3.2.0", - "@sinclair/typebox": "^0.28.20", - "fastify": "^4.3.0", - "fastify-metrics": "^10.2.0", - "node-pg-migrate": "^6.2.2", - "pino": "^8.11.0", - "postgres": "^3.3.4" - }, - "bin": { - "api-toolkit-git-info": "bin/api-toolkit-git-info.js" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/@fastify/cors": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@fastify/cors/-/cors-8.5.0.tgz", - "integrity": "sha512-/oZ1QSb02XjP0IK1U0IXktEsw/dUBTxJOW7IpIeO8c/tNalw/KjoNSJv1Sf6eqoBPO+TDGkifq6ynFK3v68HFQ==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, "dependencies": { - "fastify-plugin": "^4.0.0", - "mnemonist": "0.39.6" + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/@fastify/type-provider-typebox": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@fastify/type-provider-typebox/-/type-provider-typebox-3.6.0.tgz", - "integrity": "sha512-HTeOLvirfGg0u1KGao3iXn5rZpYNqlrOmyDnXSXAbWVPa+mDQTTBNs/x5uZzOB6vFAqr0Xcf7x1lxOamNSYKjw==", - "peerDependencies": { - "@sinclair/typebox": ">=0.26 <=0.32" - } - }, - "node_modules/@hirosystems/api-toolkit/node_modules/@sinclair/typebox": { - "version": "0.28.20", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.28.20.tgz", - "integrity": "sha512-QCF3BGfacwD+3CKhGsMeixnwOmX4AWgm61nKkNdRStyLVu0mpVFYlDSY8gVBOOED1oSwzbJauIWl/+REj8K5+w==" - }, - "node_modules/@hirosystems/api-toolkit/node_modules/@types/pg": { - "version": "8.10.7", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.10.7.tgz", - "integrity": "sha512-ksJqHipwYaSEHz9e1fr6H6erjoEdNNaOxwyJgPx9bNeaqOW3iWBQgVHfpwiSAoqGzchfc+ZyRLwEfeCcyYD3uQ==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, "dependencies": { - "@types/node": "*", - "pg-protocol": "*", - "pg-types": "^4.0.1" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "engines": { - "node": ">=10" + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/fastify-metrics": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/fastify-metrics/-/fastify-metrics-10.6.0.tgz", - "integrity": "sha512-QIPncCnwBOEObMn+VaRhsBC1ox8qEsaiYF2sV/A1UbXj7ic70W8/HNn/hlEC2W8JQbBeZMx++o1um2fPfhsFDQ==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, "dependencies": { - "fastify-plugin": "^4.3.0", - "prom-client": "^14.2.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, - "peerDependencies": { - "fastify": ">=4" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/node-pg-migrate": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/node-pg-migrate/-/node-pg-migrate-6.2.2.tgz", - "integrity": "sha512-0WYLTXpWu2doeZhiwJUW/1u21OqAFU2CMQ8YZ8VBcJ0xrdqYAjtd8GGFe5A5DM4NJdIZsqJcLPDFqY0FQsmivw==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, "dependencies": { - "@types/pg": "^8.0.0", - "decamelize": "^5.0.0", - "mkdirp": "~1.0.0", - "yargs": "~17.3.0" - }, - "bin": { - "node-pg-migrate": "bin/node-pg-migrate" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": ">=12.20.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "pg": ">=4.3.0 <9.0.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@hirosystems/api-toolkit/node_modules/pg-types": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.1.tgz", - "integrity": "sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g==", + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "pg-int8": "1.0.1", - "pg-numeric": "1.0.2", - "postgres-array": "~3.0.1", - "postgres-bytea": "~3.0.0", - "postgres-date": "~2.0.1", - "postgres-interval": "^3.0.0", - "postgres-range": "^1.1.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@hirosystems/api-toolkit/node_modules/postgres": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/postgres/-/postgres-3.4.3.tgz", - "integrity": "sha512-iHJn4+M9vbTdHSdDzNkC0crHq+1CUdFhx+YqCE+SqWxPjm+Zu63jq7yZborOBF64c8pc58O5uMudyL1FQcHacA==", - "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "type": "individual", - "url": "https://github.com/sponsors/porsager" - } - }, - "node_modules/@hirosystems/api-toolkit/node_modules/postgres-array": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", - "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", - "engines": { - "node": ">=12" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/postgres-bytea": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", - "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "obuf": "~1.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/postgres-date": { + "node_modules/@jest/reporters/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.0.1.tgz", - "integrity": "sha512-YtMKdsDt5Ojv1wQRvUhnyDJNSr2dGIC96mQVKz7xufp07nfuFONzdaowrMHjlAzY6GDLd4f+LUHHAAM1h4MdUw==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=12" + "node": ">=7.0.0" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/postgres-interval": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", - "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", - "engines": { - "node": ">=12" - } + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/@hirosystems/api-toolkit/node_modules/prom-client": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "tdigest": "^0.1.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@hirosystems/api-toolkit/node_modules/yargs": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", - "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "node_modules/@jest/schemas/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">=10.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "has-flag": "^4.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, "engines": { "node": ">=8" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">=8" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=7.0.0" } }, - "node_modules/@jest/schemas/node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -2634,10 +2396,34 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, + "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dependencies": { "glob": "^7.1.3" }, @@ -2759,14 +2545,43 @@ } }, "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dependencies": { + "@gar/promisify": "^1.1.3", "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@octokit/auth-token": { @@ -2824,9 +2639,9 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.1.0.tgz", - "integrity": "sha512-pGUdSP+eEPfZiQHNkZI0U01HLipxncisdJQB4G//OAmfeO8sqTQ9KRa0KF03TUPCziNsoXUrTg4B2Q1EX++T0Q==", + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { @@ -2919,12 +2734,12 @@ } }, "node_modules/@octokit/types": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.1.tgz", - "integrity": "sha512-Y73oOAzRBAUzR/iRAbGULzpNkX8vaxKCqEtg6K74Ff3w9f5apFnWtE/2nade7dMWWW3bS5Kkd6DJS4HF04xreg==", + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^22.1.0" + "@octokit/openapi-types": "^22.2.0" } }, "node_modules/@opentelemetry/api": { @@ -2939,21 +2754,140 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, "optional": true, "engines": { "node": ">=14" } }, - "node_modules/@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "node_modules/@redocly/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@redocly/cli": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-1.19.0.tgz", + "integrity": "sha512-ev6J0eD+quprvW9PVCl9JmRFZbj6cuK+mnYPAjcrPvesy2RF752fflcpgQjGnyFaGb1Cj+DiwDi3dYr3EAp04A==", + "dev": true, + "dependencies": { + "@redocly/openapi-core": "1.19.0", + "abort-controller": "^3.0.0", + "chokidar": "^3.5.1", + "colorette": "^1.2.0", + "core-js": "^3.32.1", + "form-data": "^4.0.0", + "get-port-please": "^3.0.1", + "glob": "^7.1.6", + "handlebars": "^4.7.6", + "mobx": "^6.0.4", + "node-fetch": "^2.6.1", + "pluralize": "^8.0.0", + "react": "^17.0.0 || ^18.2.0", + "react-dom": "^17.0.0 || ^18.2.0", + "redoc": "~2.1.5", + "semver": "^7.5.2", + "simple-websocket": "^9.0.0", + "styled-components": "^6.0.7", + "yargs": "17.0.1" + }, + "bin": { + "openapi": "bin/cli.js", + "redocly": "bin/cli.js" + }, + "engines": { + "node": ">=14.19.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@redocly/cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@redocly/cli/node_modules/yargs": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@redocly/cli/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@redocly/config": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.7.0.tgz", + "integrity": "sha512-6GKxTo/9df0654Mtivvr4lQnMOp+pRj9neVywmI5+BwfZLTtkJnj2qB3D6d8FHTr4apsNOf6zTa5FojX0Evh4g==", + "dev": true + }, + "node_modules/@redocly/openapi-core": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.19.0.tgz", + "integrity": "sha512-ezK6qr80sXvjDgHNrk/zmRs9vwpIAeHa0T/qmo96S+ib4ThQ5a8f3qjwEqxMeVxkxCTbkaY9sYSJKOxv4ejg5w==", + "dev": true, + "dependencies": { + "@redocly/ajv": "^8.11.0", + "@redocly/config": "^0.7.0", + "colorette": "^1.2.0", + "https-proxy-agent": "^7.0.4", + "js-levenshtein": "^1.1.6", + "js-yaml": "^4.1.0", + "lodash.isequal": "^4.5.0", + "minimatch": "^5.0.1", + "node-fetch": "^2.6.1", + "pluralize": "^8.0.0", + "yaml-ast-parser": "0.0.43" + }, + "engines": { + "node": ">=14.19.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] }, "node_modules/@scure/bip39": { "version": "1.1.0", @@ -2976,9 +2910,9 @@ "integrity": "sha512-Ul3YyOTU++to8cgNkttakC0dWvpERr6RYoHO2W47DLbFvrwBDJUY31B1sImH6JZSYc4Kt4PyHtoPNu+vL2r2dA==" }, "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -2994,9 +2928,9 @@ } }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" }, "node_modules/@stacks/common": { "version": "6.10.0", @@ -3008,9 +2942,9 @@ } }, "node_modules/@stacks/common/node_modules/@types/node": { - "version": "18.19.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", - "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dependencies": { "undici-types": "~5.26.4" } @@ -3032,18 +2966,18 @@ } }, "node_modules/@stacks/encryption/node_modules/@stacks/common": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.13.0.tgz", - "integrity": "sha512-wwzyihjaSdmL6NxKvDeayy3dqM0L0Q2sawmdNtzJDi0FnXuJGm5PeapJj7bEfcI9XwI7Bw5jZoC6mCn9nc5YIw==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.16.0.tgz", + "integrity": "sha512-PnzvhrdGRMVZvxTulitlYafSK4l02gPCBBoI9QEoTqgSnv62oaOXhYAUUkTMFKxdHW1seVEwZsrahuXiZPIAwg==", "dependencies": { "@types/bn.js": "^5.1.0", "@types/node": "^18.0.4" } }, "node_modules/@stacks/encryption/node_modules/@types/node": { - "version": "18.19.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.29.tgz", - "integrity": "sha512-5pAX7ggTmWZdhUrhRWLPf+5oM7F80bcKVCBbr0zwEkTNzTJL2CWQjznpFgHYy6GrzkYi2Yjy7DHKoynFxqPV8g==", + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dependencies": { "undici-types": "~5.26.4" } @@ -3071,6 +3005,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.0", @@ -3085,6 +3020,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true }, "node_modules/@stacks/eslint-config/node_modules/@typescript-eslint/eslint-plugin": { @@ -3236,6 +3172,65 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@stacks/eslint-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@stacks/eslint-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@stacks/eslint-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@stacks/eslint-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@stacks/eslint-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@stacks/eslint-config/node_modules/eslint": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", @@ -3364,6 +3359,30 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/@stacks/eslint-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@stacks/eslint-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@stacks/network": { "version": "6.11.3", "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.11.3.tgz", @@ -3410,40 +3429,40 @@ } }, "node_modules/@stacks/stacking/node_modules/@stacks/common": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.13.0.tgz", - "integrity": "sha512-wwzyihjaSdmL6NxKvDeayy3dqM0L0Q2sawmdNtzJDi0FnXuJGm5PeapJj7bEfcI9XwI7Bw5jZoC6mCn9nc5YIw==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.16.0.tgz", + "integrity": "sha512-PnzvhrdGRMVZvxTulitlYafSK4l02gPCBBoI9QEoTqgSnv62oaOXhYAUUkTMFKxdHW1seVEwZsrahuXiZPIAwg==", "dependencies": { "@types/bn.js": "^5.1.0", "@types/node": "^18.0.4" } }, "node_modules/@stacks/stacking/node_modules/@stacks/network": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.13.0.tgz", - "integrity": "sha512-Ss/Da4BNyPBBj1OieM981fJ7SkevKqLPkzoI1+Yo7cYR2df+0FipIN++Z4RfpJpc8ne60vgcx7nJZXQsiGhKBQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.16.0.tgz", + "integrity": "sha512-uqz9Nb6uf+SeyCKENJN+idt51HAfEeggQKrOMfGjpAeFgZV2CR66soB/ci9+OVQR/SURvasncAz2ScI1blfS8A==", "dependencies": { - "@stacks/common": "^6.13.0", + "@stacks/common": "^6.16.0", "cross-fetch": "^3.1.5" } }, "node_modules/@stacks/stacking/node_modules/@stacks/transactions": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.13.1.tgz", - "integrity": "sha512-PWw2I+2Fj3CaFYQIoVcqQN6E2qGHNhFv03nuR0CxMq0sx8stPgYZbdzUlnlBcJQdsFiHrw3sPeqnXDZt+Hg5YQ==", + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.16.1.tgz", + "integrity": "sha512-yCtUM+8IN0QJbnnlFhY1wBW7Q30Cxje3Zmy8DgqdBoM/EPPWadez/8wNWFANVAMyUZeQ9V/FY+8MAw4E+pCReA==", "dependencies": { "@noble/hashes": "1.1.5", "@noble/secp256k1": "1.7.1", - "@stacks/common": "^6.13.0", - "@stacks/network": "^6.13.0", + "@stacks/common": "^6.16.0", + "@stacks/network": "^6.16.0", "c32check": "^2.0.0", "lodash.clonedeep": "^4.5.0" } }, "node_modules/@stacks/stacking/node_modules/@types/node": { - "version": "18.19.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.29.tgz", - "integrity": "sha512-5pAX7ggTmWZdhUrhRWLPf+5oM7F80bcKVCBbr0zwEkTNzTJL2CWQjznpFgHYy6GrzkYi2Yjy7DHKoynFxqPV8g==", + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dependencies": { "undici-types": "~5.26.4" } @@ -3499,9 +3518,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true }, "node_modules/@tsconfig/node12": { @@ -3523,9 +3542,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz", - "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -3536,18 +3555,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.6", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz", - "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz", - "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -3555,26 +3574,26 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz", - "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-wT1B4iIO82ecXkdN6waCK8Ou7E71WU+mP1osDA5Q8c6Ur+ozU2vIKUIhSpUr6uE5L2YHocKS1Z2jG2fBC1YVeg==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/body-parser": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz", - "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, "dependencies": { "@types/connect": "*", @@ -3582,14 +3601,14 @@ } }, "node_modules/@types/caseless": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.4.tgz", - "integrity": "sha512-2in/lrHRNmDvHPgyormtEralhPcN3An1gLjJzj2Bw145VBxkQ75JEXW6CTdMAwShiHQcYsl2d10IjQSdJSJz4g==" + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==" }, "node_modules/@types/connect": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", - "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "dependencies": { "@types/node": "*" @@ -3610,9 +3629,9 @@ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" }, "node_modules/@types/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-LZ8SD3LpNmLMDLkG2oCBjZg+ETnx6XdCjydUE0HwojDmnDfDUnhMKKbtth1TZh+hzcqb03azrYWoXLS8sMXdqg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", "dev": true }, "node_modules/@types/cors": { @@ -3648,9 +3667,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.39", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz", - "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==", + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", "dev": true, "dependencies": { "@types/node": "*", @@ -3660,24 +3679,24 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz", - "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-errors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz", - "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, "node_modules/@types/http-proxy": { - "version": "1.17.13", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.13.tgz", - "integrity": "sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw==", + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", "dependencies": { "@types/node": "*" } @@ -3692,24 +3711,24 @@ } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", - "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", - "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" @@ -3726,9 +3745,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -3740,10 +3759,16 @@ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" }, + "node_modules/@types/methods": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", + "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==", + "dev": true + }, "node_modules/@types/mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz", - "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, "node_modules/@types/node": { @@ -3764,10 +3789,24 @@ "form-data": "^3.0.0" } }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@types/parse-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz", - "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "node_modules/@types/pg": { @@ -3792,21 +3831,21 @@ } }, "node_modules/@types/qs": { - "version": "6.9.9", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", - "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==", + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, "node_modules/@types/range-parser": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz", - "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, "node_modules/@types/request": { - "version": "2.48.11", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.11.tgz", - "integrity": "sha512-HuihY1+Vss5RS9ZHzRyTGIzwPTdrJBkCm/mAeLRYrOQu/MGqyezKXWOK1VhCnR+SDbp9G2mRUP+OVEqCrzpcfA==", + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", "dependencies": { "@types/caseless": "*", "@types/node": "*", @@ -3815,9 +3854,9 @@ } }, "node_modules/@types/request-promise-native": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.20.tgz", - "integrity": "sha512-1dfdWY0u6mNkAheZ5UqBGY/ARpDXE5xJ+npN3COoTfrQTt4FmHrwp8548zU6F1LniUK75qk06HoOvCG+hS/8Zw==", + "version": "1.0.21", + "resolved": "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.21.tgz", + "integrity": "sha512-NJ1M6iqWTEUT+qdP+OmXsRZ6tSdkoBdblHKatIWTVP1HdYpHU3IkfpLPf4MWb0+CC4Nl3TtLpYhDlhjZxytDIA==", "dependencies": { "@types/request": "*" } @@ -3836,15 +3875,15 @@ } }, "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/send": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz", - "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, "dependencies": { "@types/mime": "^1", @@ -3852,14 +3891,14 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz", - "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/source-map-support": { @@ -3881,19 +3920,27 @@ } }, "node_modules/@types/stack-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", - "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", "dev": true }, "node_modules/@types/superagent": { - "version": "4.1.20", - "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.20.tgz", - "integrity": "sha512-GfpwJgYSr3yO+nArFkmyqv3i0vZavyEG5xPd/o95RwpKYpsOKJYI5XLdxLpdRbZI3YiGKKdIOFIf/jlP7A0Jxg==", + "version": "8.1.8", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.8.tgz", + "integrity": "sha512-nTqHJ2OTa7PFEpLahzSEEeFeqbMpmcN7OeayiOc7v+xk+/vyTKljRe+o4MPqSnPeRCMvtxuLG+5QqluUVQJOnA==", "dev": true, "dependencies": { - "@types/cookiejar": "*", - "@types/node": "*" + "@types/cookiejar": "^2.1.5", + "@types/methods": "^1.1.4", + "@types/node": "*", + "form-data": "^4.0.0" } }, "node_modules/@types/supertest": { @@ -3916,9 +3963,9 @@ } }, "node_modules/@types/tough-cookie": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.4.tgz", - "integrity": "sha512-95Sfz4nvMAb0Nl9DTxN3j64adfwfbBPEYq14VN7zT5J5O2M9V6iZMIIQU1U+pJyl9agHYHNCqhCXgyEtIRRa5A==" + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" }, "node_modules/@types/uuid": { "version": "7.0.5", @@ -3935,18 +3982,18 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", - "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.2", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", - "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==", + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -4425,9 +4472,9 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4446,23 +4493,27 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, "dependencies": { - "debug": "4" + "debug": "^4.3.4" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/agentkeepalive": { @@ -4503,6 +4554,20 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ajv-formats": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", @@ -4519,11 +4584,6 @@ } } }, - "node_modules/ajv/node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" - }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -4569,17 +4629,15 @@ } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/anymatch": { @@ -4604,6 +4662,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -4624,13 +4683,16 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4648,15 +4710,16 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -4675,13 +4738,34 @@ "node": ">=8" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "node_modules/array.prototype.filter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz", + "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", "dev": true, + "peer": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" @@ -4694,17 +4778,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -4744,10 +4829,13 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -4773,9 +4861,9 @@ } }, "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.1.tgz", + "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==" }, "node_modules/babel-jest": { "version": "29.7.0", @@ -4798,6 +4886,67 @@ "@babel/core": "^7.8.0" } }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -4958,12 +5107,15 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bintrees": { @@ -5038,21 +5190,27 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "peer": true + }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -5064,9 +5222,9 @@ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, "funding": [ { @@ -5083,10 +5241,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -5126,9 +5284,9 @@ } }, "node_modules/bs58check/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", "dependencies": { "safe-buffer": "^5.0.1" } @@ -5221,59 +5379,64 @@ } }, "node_modules/c32check/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", "lru-cache": "^7.7.1", - "minipass": "^7.0.3", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", "p-map": "^4.0.0", - "ssri": "^10.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "unique-filename": "^2.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/cacache/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5287,36 +5450,65 @@ "node": ">=12" } }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dependencies": { - "brace-expansion": "^2.0.1" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "node_modules/cacache/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "*" } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5345,10 +5537,19 @@ "node": ">=6" } }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001553", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001553.tgz", - "integrity": "sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "dev": true, "funding": [ { @@ -5371,15 +5572,12 @@ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" @@ -5394,17 +5592,60 @@ "node": ">=10" } }, + "node_modules/charset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz", + "integrity": "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "peer": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "peer": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5417,6 +5658,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -5454,9 +5698,15 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", "dev": true }, "node_modules/clean-stack": { @@ -5481,6 +5731,15 @@ "node": ">=12" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -5503,20 +5762,19 @@ "dev": true }, "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "node_modules/color-support": { "version": "1.1.3", @@ -5527,9 +5785,10 @@ } }, "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true }, "node_modules/combined-stream": { "version": "1.0.8", @@ -5559,15 +5818,41 @@ "dev": true }, "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compute-gcd": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", + "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", + "dev": true, + "dependencies": { + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" + } + }, + "node_modules/compute-lcm": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", + "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", + "dev": true, + "dependencies": { + "compute-gcd": "^1.2.1", + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concurrently": { "version": "7.3.0", @@ -5592,21 +5877,67 @@ "node": "^12.20.0 || ^14.13.0 || >=16.0.0" } }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/concurrently/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, + "node_modules/concurrently/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -5691,9 +6022,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { "node": ">= 0.6" } @@ -5709,6 +6040,17 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, + "node_modules/core-js": { + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.0.tgz", + "integrity": "sha512-XPpwqEodRljce9KswjZShh95qJ1URisBeKCjUdq27YdenkslVe7OO0ZJhlYXAChW7OhXaRLl8AAba7IBfoIHug==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -5726,6 +6068,49 @@ "node": ">= 0.10" } }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "dev": true, + "dependencies": { + "jiti": "^1.19.1" + }, + "engines": { + "node": ">=v16" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=8.2", + "typescript": ">=4" + } + }, "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -5759,6 +6144,67 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -5830,6 +6276,62 @@ "node": ">= 8" } }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "peer": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dev": true, + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, "node_modules/dargs": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", @@ -5853,6 +6355,57 @@ "node": ">=0.10" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/date-fns": { "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", @@ -5878,9 +6431,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dependencies": { "ms": "2.1.2" }, @@ -5893,10 +6446,27 @@ } } }, + "node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decko": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz", + "integrity": "sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==", + "dev": true + }, "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" @@ -5923,16 +6493,19 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -5989,9 +6562,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "engines": { "node": ">=8" } @@ -6035,8 +6608,15 @@ "node": ">=8" } }, - "node_modules/docker-compose": { - "version": "0.24.8", + "node_modules/discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "dev": true, + "peer": true + }, + "node_modules/docker-compose": { + "version": "0.24.8", "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.8.tgz", "integrity": "sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==", "dev": true, @@ -6047,18 +6627,6 @@ "node": ">= 6.0.0" } }, - "node_modules/docker-compose/node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -6071,6 +6639,71 @@ "node": ">=6.0.0" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "peer": true + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", + "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==", + "dev": true + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "peer": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -6116,7 +6749,8 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true }, "node_modules/ecc-jsbn": { "version": "0.1.2", @@ -6127,6 +6761,11 @@ "safer-buffer": "^2.1.0" } }, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, "node_modules/ecpair": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ecpair/-/ecpair-2.1.0.tgz", @@ -6146,9 +6785,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.563", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.563.tgz", - "integrity": "sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", + "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==", "dev": true }, "node_modules/elliptic": { @@ -6281,6 +6920,14 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/engine.io/node_modules/ws": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", @@ -6314,6 +6961,19 @@ "node": ">=8.6" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -6322,6 +6982,53 @@ "node": ">=6" } }, + "node_modules/enzyme": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz", + "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==", + "dev": true, + "peer": true, + "dependencies": { + "array.prototype.flat": "^1.2.3", + "cheerio": "^1.0.0-rc.3", + "enzyme-shallow-equal": "^1.0.1", + "function.prototype.name": "^1.1.2", + "has": "^1.0.3", + "html-element-map": "^1.2.0", + "is-boolean-object": "^1.0.1", + "is-callable": "^1.1.5", + "is-number-object": "^1.0.4", + "is-regex": "^1.0.5", + "is-string": "^1.0.5", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.7.0", + "object-is": "^1.0.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1", + "object.values": "^1.1.1", + "raf": "^3.4.1", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.2.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/enzyme-shallow-equal": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz", + "integrity": "sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0", + "object-is": "^1.1.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -6337,50 +7044,57 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -6389,15 +7103,53 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true, + "peer": true + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -6429,10 +7181,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { "node": ">=6" } @@ -6574,9 +7332,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -6626,6 +7384,16 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -6647,6 +7415,18 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -6752,6 +7532,65 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -6826,6 +7665,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint/node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", @@ -6841,6 +7692,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -6872,9 +7744,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -6970,23 +7842,23 @@ } }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -7063,14 +7935,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -7084,11 +7948,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -7108,9 +7967,9 @@ "integrity": "sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==" }, "node_modules/fast-copy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", - "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==" }, "node_modules/fast-decode-uri-component": { "version": "1.0.1", @@ -7129,9 +7988,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -7150,33 +8009,23 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-json-stringify": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.8.0.tgz", - "integrity": "sha512-VVwK8CFMSALIvt14U8AvrSzQAwN/0vaVRiFFUVlpnXSnDGrSkOAO5MtzyN8oQNjLd5AqTW5OZRgyjoNuAuR3jQ==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.16.1.tgz", + "integrity": "sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==", "dependencies": { - "@fastify/deepmerge": "^1.0.0", + "@fastify/merge-json-schemas": "^0.1.0", "ajv": "^8.10.0", - "ajv-formats": "^2.1.1", + "ajv-formats": "^3.0.1", "fast-deep-equal": "^3.1.3", "fast-uri": "^2.1.0", + "json-schema-ref-resolver": "^1.0.1", "rfdc": "^1.2.0" } }, - "node_modules/fast-json-stringify/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } + "node_modules/fast-json-stringify/node_modules/fast-uri": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz", + "integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -7193,9 +8042,9 @@ } }, "node_modules/fast-redact": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", - "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", "engines": { "node": ">=6" } @@ -7206,9 +8055,9 @@ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, "node_modules/fast-uri": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.2.0.tgz", - "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" }, "node_modules/fastify": { "version": "4.28.1", @@ -7243,27 +8092,1307 @@ "toad-cache": "^3.3.0" } }, - "node_modules/fastify-metrics": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/fastify-metrics/-/fastify-metrics-11.0.0.tgz", - "integrity": "sha512-2nv0pzkuRVRuAmW3fR2vh1FQF7sV/mgzOJ8cz3HjUzByudWvx2IOHKnJLWtUohiD1AaI2QxtLQKTDZv/nASBRQ==", + "node_modules/fastify-metrics": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/fastify-metrics/-/fastify-metrics-11.0.0.tgz", + "integrity": "sha512-2nv0pzkuRVRuAmW3fR2vh1FQF7sV/mgzOJ8cz3HjUzByudWvx2IOHKnJLWtUohiD1AaI2QxtLQKTDZv/nASBRQ==", + "dependencies": { + "fastify-plugin": "^4.3.0", + "prom-client": "^15.1.0" + }, + "peerDependencies": { + "fastify": ">=4" + } + }, + "node_modules/fastify-plugin": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz", + "integrity": "sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==" + }, + "node_modules/fastify/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/fastify/node_modules/pino": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.3.2.tgz", + "integrity": "sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/fastify/node_modules/pino-abstract-transport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/fastify/node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==" + }, + "node_modules/fastify/node_modules/pino/node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==" + }, + "node_modules/fastify/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/fastify/node_modules/sonic-boom": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", + "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/fastify/node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/fastify/node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-my-way": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.0.tgz", + "integrity": "sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-querystring": "^1.0.0", + "safe-regex2": "^3.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "dev": true, + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "dev": true, + "dependencies": { + "semver-regex": "^3.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", + "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", + "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", + "dev": true, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port-please": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", + "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", + "dev": true + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/git-raw-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "dev": true, + "dependencies": { + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/git-raw-commits/node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/help-me": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", + "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/html-element-map": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", + "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", + "dev": true, + "peer": true, + "dependencies": { + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz", + "integrity": "sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg==", + "dependencies": { + "@types/http-proxy": "^1.17.5", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/http-reasons": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/http-reasons/-/http-reasons-0.1.0.tgz", + "integrity": "sha512-P6kYh0lKZ+y29T2Gqz+RlC9WBLhKe8kDmcJ+A+611jFfxdPsbMRQ5aNmFRM3lENqFkK+HTTL+tlQviAiv0AbLQ==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/http2-client": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", + "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/husky": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", + "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^7.0.0", + "find-versions": "^4.0.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "bin": { + "husky-run": "bin/run.js", + "husky-upgrade": "lib/upgrader/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/husky" + } + }, + "node_modules/husky/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/husky/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/husky/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/husky/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/husky/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/husky/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/husky/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/husky/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/husky/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dependencies": { - "fastify-plugin": "^4.3.0", - "prom-client": "^15.1.0" + "safer-buffer": ">= 2.1.2 < 3" }, - "peerDependencies": { - "fastify": ">=4" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/fastify-plugin": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz", - "integrity": "sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==" - }, - "node_modules/fastify/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -7277,400 +9406,291 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/fastify/node_modules/pino": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.3.2.tgz", - "integrity": "sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.2.0", - "pino-std-serializers": "^7.0.0", - "process-warning": "^4.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^4.0.1", - "thread-stream": "^3.0.0" - }, - "bin": { - "pino": "bin.js" - } + ] }, - "node_modules/fastify/node_modules/pino-abstract-transport": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" } }, - "node_modules/fastify/node_modules/pino-std-serializers": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", - "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==" - }, - "node_modules/fastify/node_modules/pino/node_modules/process-warning": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", - "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==" - }, - "node_modules/fastify/node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true }, - "node_modules/fastify/node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/fastify/node_modules/sonic-boom": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", - "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", - "dependencies": { - "atomic-sleep": "^1.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fastify/node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "engines": { - "node": ">= 10.x" - } - }, - "node_modules/fastify/node_modules/thread-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", - "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", - "dependencies": { - "real-require": "^0.2.0" + "node": ">=4" } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, "dependencies": { - "reusify": "^1.0.4" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", "dev": true, - "dependencies": { - "bser": "2.1.1" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=0.8.19" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "engines": { "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, + "node_modules/index-to-position": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", + "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", + "dev": true, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, - "node_modules/find-my-way": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.0.tgz", - "integrity": "sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-querystring": "^1.0.0", - "safe-regex2": "^3.1.0" - }, - "engines": { - "node": ">=14" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/find-versions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", - "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "semver-regex": "^3.1.2" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" }, "engines": { - "node": ">=12.0.0" + "node": ">= 12" } }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "is-callable": "^1.1.3" + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/form-data": { + "node_modules/is-ci": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "ci-info": "^3.2.0" }, - "engines": { - "node": ">= 6" + "bin": { + "is-ci": "bin.js" } }, - "node_modules/formidable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", - "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", - "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dependencies": { - "minipass": "^7.0.3" + "hasown": "^2.0.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "is-typed-array": "^1.1.13" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -7679,85 +9699,104 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" } }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=0.12.0" } }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "engines": { "node": ">=10" }, @@ -7765,14 +9804,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -7781,113 +9820,89 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/getopts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", - "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/git-raw-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", - "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "dargs": "^8.0.0", - "meow": "^12.0.1", - "split2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.mjs" + "call-bind": "^1.0.7" }, "engines": { - "node": ">=16" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/git-raw-commits/node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "engines": { - "node": ">= 10.x" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "*" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } + "peer": true }, - "node_modules/global-directory": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", - "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "ini": "4.1.1" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "node_modules/is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "text-extensions": "^2.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -7896,1541 +9911,1650 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3" + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "dev": true, + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/har-validator/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, "engines": { - "node": ">= 0.4.0" + "node": ">=10" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "dependencies": { - "function-bind": "^1.1.2" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/help-me": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", - "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + "node_modules/jest-changed-files/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "path-key": "^3.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/jest-changed-files/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">= 6" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/http-proxy-middleware": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz", - "integrity": "sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg==", + "node_modules/jest-changed-files/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/jest-changed-files/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, "dependencies": { - "@types/http-proxy": "^1.17.5", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=10.17.0" + "node": ">=7.0.0" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "ms": "^2.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/husky": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", - "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, - "hasInstallScript": true, "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^4.0.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^5.0.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" }, "bin": { - "husky-run": "bin/run.js", - "husky-upgrade": "lib/upgrader/bin.js" + "jest": "bin/jest.js" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/husky" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/husky/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/husky/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "node": ">=8" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 4" + "node": ">=7.0.0" } }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/import-meta-resolve": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", - "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", - "dev": true, + "node": ">=10" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.8.19" + "node": ">=7.0.0" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ip": { + "node_modules/jest-diff/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 0.10" + "node": ">=7.0.0" } }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" + "detect-newline": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "ci-info": "^3.2.0" + "color-name": "~1.1.4" }, - "bin": { - "is-ci": "bin.js" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" + "dependencies": { + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/is-regex": { + "node_modules/jest-matcher-utils/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=7.0.0" } }, - "node_modules/is-text-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "text-extensions": "^2.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, - "peerDependencies": { - "ws": "*" + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" + "node": ">=7.0.0" } }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "semver": "^7.5.3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "@isaacs/cliui": "^8.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=14" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=7.0.0" } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-circus": { + "node_modules/jest-runtime": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "strip-bom": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">=8" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=7.0.0" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "detect-newline": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-each": { + "node_modules/jest-snapshot": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=7.0.0" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-message-util": { + "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", + "@types/node": "*", "chalk": "^4.0.0", + "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "jest-resolve": "*" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=7.0.0" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-resolve-dependencies": { + "node_modules/jest-validate": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runner/node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-util": { + "node_modules/jest-watcher": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/jest-worker": { @@ -9448,25 +11572,10 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -9486,6 +11595,15 @@ "node": ">=10" } }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/js-sdsl": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", @@ -9514,9 +11632,9 @@ } }, "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" }, "node_modules/jsesc": { "version": "2.5.2", @@ -9542,11 +11660,51 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "node_modules/json-pointer": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "dev": true, + "dependencies": { + "foreach": "^2.0.4" + } + }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, + "node_modules/json-schema-compare": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", + "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.4" + } + }, + "node_modules/json-schema-merge-allof": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", + "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", + "dev": true, + "dependencies": { + "compute-lcm": "^1.1.2", + "json-schema-compare": "^0.2.2", + "lodash": "^4.17.20" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/json-schema-ref-resolver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz", + "integrity": "sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + } + }, "node_modules/json-schema-resolver": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/json-schema-resolver/-/json-schema-resolver-2.0.0.tgz", @@ -9681,39 +11839,43 @@ } }, "node_modules/light-my-request": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.11.0.tgz", - "integrity": "sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.13.0.tgz", + "integrity": "sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==", "dependencies": { - "cookie": "^0.5.0", - "process-warning": "^2.0.0", + "cookie": "^0.6.0", + "process-warning": "^3.0.0", "set-cookie-parser": "^2.4.1" } }, - "node_modules/light-my-request/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/liquid-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/liquid-json/-/liquid-json-0.3.1.tgz", + "integrity": "sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -9732,6 +11894,26 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, + "node_modules/lodash.escape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", + "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", + "dev": true, + "peer": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "peer": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -9786,6 +11968,18 @@ "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", "dev": true }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -9797,6 +11991,12 @@ "node": ">=10" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -9826,28 +12026,52 @@ "dev": true }, "node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "dependencies": { "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "ssri": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { @@ -9867,6 +12091,24 @@ "tmpl": "1.0.5" } }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "dev": true + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -9931,11 +12173,11 @@ "integrity": "sha512-iwqAmg66VjB2LA3BcUxyrOyqck4HLLtSzKnx2VQSnN5piQji598N15P8RRx2d6lPvJ98B1b0cl2VbvQeFeWdig==" }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -9961,6 +12203,15 @@ "node": ">= 0.6" } }, + "node_modules/mime-format": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mime-format/-/mime-format-2.0.1.tgz", + "integrity": "sha512-XxU3ngPbEnrYnNbIX+lYSaYg0M01v6p2ntd2YaFksTu0vayaw5OJvbdRyWs07EYRlLED5qadUZ+xo+XhOvFhwg==", + "dev": true, + "dependencies": { + "charset": "^1.0.0" + } + }, "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", @@ -9973,12 +12224,15 @@ } }, "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/minimal-polyfills": { @@ -9997,14 +12251,14 @@ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" } }, "node_modules/minimist": { @@ -10016,9 +12270,12 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { "node": ">=8" } @@ -10034,39 +12291,20 @@ "node": ">= 8" } }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "dependencies": { - "minipass": "^7.0.3", + "minipass": "^3.1.6", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, "node_modules/minipass-flush": { @@ -10080,17 +12318,6 @@ "node": ">= 8" } }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", @@ -10102,17 +12329,6 @@ "node": ">=8" } }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", @@ -10124,17 +12340,6 @@ "node": ">=8" } }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -10147,17 +12352,6 @@ "node": ">= 8" } }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -10177,11 +12371,96 @@ "obliterator": "^2.0.1" } }, + "node_modules/mobx": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.13.1.tgz", + "integrity": "sha512-ekLRxgjWJr8hVxj9ZKuClPwM/iHckx3euIJ3Np7zLVNtqJvfbbq7l370W/98C8EabdQ1pB5Jd3BbDWxJPNnaOg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + } + }, + "node_modules/mobx-react": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-9.1.1.tgz", + "integrity": "sha512-gVV7AdSrAAxqXOJ2bAbGa5TkPqvITSzaPiiEkzpW4rRsMhSec7C2NBCJYILADHKp2tzOAIETGRsIY0UaCV5aEw==", + "dev": true, + "dependencies": { + "mobx-react-lite": "^4.0.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.9.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/mobx-react-lite": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-4.0.7.tgz", + "integrity": "sha512-RjwdseshK9Mg8On5tyJZHtGD+J78ZnCnRaxeQDSiciKVQDUbfZcXhmld0VMxAwvcTnPEHZySGGewm467Fcpreg==", + "dev": true, + "dependencies": { + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.9.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true, + "peer": true + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -10194,6 +12473,36 @@ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true }, + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "dev": true, + "peer": true, + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, + "node_modules/nearley/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "peer": true + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -10202,6 +12511,12 @@ "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, "node_modules/nock": { "version": "13.5.4", "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", @@ -10217,9 +12532,9 @@ } }, "node_modules/node-addon-api": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", - "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" }, "node_modules/node-fetch": { "version": "2.6.7", @@ -10240,16 +12555,28 @@ } } }, + "node_modules/node-fetch-h2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", + "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", + "dev": true, + "dependencies": { + "http2-client": "^1.2.5" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, "node_modules/node-gyp": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", - "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^11.0.3", + "make-fetch-happen": "^10.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -10265,9 +12592,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", - "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -10279,6 +12606,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -10291,6 +12619,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", @@ -10323,6 +12652,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", @@ -10337,6 +12667,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dependencies": { "glob": "^7.1.3" }, @@ -10347,6 +12678,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/node-gyp/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -10374,9 +12710,9 @@ } }, "node_modules/node-pg-migrate/node_modules/@types/pg": { - "version": "8.10.7", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.10.7.tgz", - "integrity": "sha512-ksJqHipwYaSEHz9e1fr6H6erjoEdNNaOxwyJgPx9bNeaqOW3iWBQgVHfpwiSAoqGzchfc+ZyRLwEfeCcyYD3uQ==", + "version": "8.11.6", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.6.tgz", + "integrity": "sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==", "dependencies": { "@types/node": "*", "pg-protocol": "*", @@ -10393,27 +12729,16 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/node-pg-migrate/node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-pg-migrate/node_modules/pg-types": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.1.tgz", - "integrity": "sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz", + "integrity": "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==", "dependencies": { "pg-int8": "1.0.1", "pg-numeric": "1.0.2", "postgres-array": "~3.0.1", "postgres-bytea": "~3.0.0", - "postgres-date": "~2.0.1", + "postgres-date": "~2.1.0", "postgres-interval": "^3.0.0", "postgres-range": "^1.1.1" }, @@ -10441,9 +12766,9 @@ } }, "node_modules/node-pg-migrate/node_modules/postgres-date": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.0.1.tgz", - "integrity": "sha512-YtMKdsDt5Ojv1wQRvUhnyDJNSr2dGIC96mQVKz7xufp07nfuFONzdaowrMHjlAzY6GDLd4f+LUHHAAM1h4MdUw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", + "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", "engines": { "node": ">=12" } @@ -10473,10 +12798,19 @@ "node": ">=12" } }, + "node_modules/node-readfiles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", + "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.2.1" + } + }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/nodemon": { @@ -10507,6 +12841,16 @@ "url": "https://opencollective.com/nodemon" } }, + "node_modules/nodemon/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/nodemon/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -10516,6 +12860,18 @@ "node": ">=4" } }, + "node_modules/nodemon/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/nodemon/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -10533,45 +12889,200 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dependencies": { - "abbrev": "1" + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "peer": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/oas-kit-common": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", + "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/oas-linter": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", + "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", + "dev": true, + "dependencies": { + "@exodus/schemasafe": "^1.0.0-rc.2", + "should": "^13.2.1", + "yaml": "^1.10.0" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-linter/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/oas-resolver": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", + "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", + "dev": true, + "dependencies": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "bin": { + "resolve": "resolve.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-resolver-browser": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver-browser/-/oas-resolver-browser-2.5.6.tgz", + "integrity": "sha512-Jw5elT/kwUJrnGaVuRWe1D7hmnYWB8rfDDjBnpQ+RYY/dzAewGXeTexXzt4fGEo6PUE4eqKqPWF79MZxxvMppA==", + "dev": true, + "dependencies": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "path-browserify": "^1.0.1", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" }, "bin": { - "nopt": "bin/nopt.js" + "resolve": "resolve.js" }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-resolver-browser/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, "engines": { - "node": ">=6" + "node": ">= 6" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/oas-resolver/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/oas-schema-walker": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", + "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", + "dev": true, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-validator": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", + "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.2.2", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.9", + "should": "^13.2.1", + "yaml": "^1.10.0" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" + "node_modules/oas-validator/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" } }, "node_modules/oauth-sign": { @@ -10590,10 +13101,38 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -10608,13 +13147,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -10625,15 +13164,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -10680,25 +13234,179 @@ } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openapi-sampler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.5.1.tgz", + "integrity": "sha512-tIWIrZUKNAsbqf3bd9U1oH6JEXo8LNYuDlXw26By67EygpjT+ArFnsxxyTMjFWRfbqo5ozkvgSQDK69Gd8CddA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.7", + "json-pointer": "0.6.2" + } + }, + "node_modules/openapi-to-postmanv2": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/openapi-to-postmanv2/-/openapi-to-postmanv2-4.23.1.tgz", + "integrity": "sha512-vNGU95euiXriNw7sVJ82uZyCyV8rXxSkc5o8bcDQh2IonO6cwzVUbrfYPnnj6A18YTGHSWHhQpUy0otxDHFoCw==", + "dev": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-draft-04": "1.0.0", + "ajv-formats": "2.1.1", + "async": "3.2.4", + "commander": "2.20.3", + "graphlib": "2.1.8", + "js-yaml": "4.1.0", + "json-schema-merge-allof": "0.8.1", + "lodash": "4.17.21", + "oas-resolver-browser": "2.5.6", + "object-hash": "3.0.0", + "path-browserify": "1.0.1", + "postman-collection": "^4.4.0", + "swagger2openapi": "7.0.8", + "traverse": "0.6.6", + "yaml": "1.10.2" + }, + "bin": { + "openapi2postmanv2": "bin/openapi2postmanv2.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/openapi-to-postmanv2/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/openapi-to-postmanv2/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/openapi-to-postmanv2/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/openapi-to-postmanv2/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/openapi-to-postmanv2/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/openapi-types": { "version": "12.1.3", "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==" }, + "node_modules/openapi-typescript": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.3.0.tgz", + "integrity": "sha512-EkljRjYWOPwGXiK++uI9MkGv2Y7uhbkZbi9V1z3r3EpmWVO6aFTHXSLNvxIWo6UT6LCTYgEYkUB3BWQjwwXthg==", + "dev": true, + "dependencies": { + "@redocly/openapi-core": "^1.16.0", + "ansi-colors": "^4.1.3", + "parse-json": "^8.1.0", + "supports-color": "^9.4.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "openapi-typescript": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.x" + } + }, + "node_modules/openapi-typescript/node_modules/parse-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", + "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "index-to-position": "^0.1.2", + "type-fest": "^4.7.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openapi-typescript/node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/openapi-typescript/node_modules/type-fest": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.24.0.tgz", + "integrity": "sha512-spAaHzc6qre0TlZQQ2aA/nGMe+2Z/wyGk5Z+Ru2VUfdNwT6kWO6TjevOlpebsATEG1EIQ2sOiDszud3lO5mt/Q==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", @@ -10709,17 +13417,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -10749,27 +13457,42 @@ } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "engines": { + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10824,6 +13547,12 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/packet-reader": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", @@ -10859,6 +13588,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "peer": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "peer": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -10867,13 +13623,19 @@ "node": ">= 0.8" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/path-is-absolute": { @@ -10899,28 +13661,41 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, "engines": { - "node": "14 || >=16.14" + "node": ">=16 || 14 >=14.17" } }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -10930,6 +13705,12 @@ "node": ">=8" } }, + "node_modules/perfect-scrollbar": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.5.tgz", + "integrity": "sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g==", + "dev": true + }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -10998,17 +13779,17 @@ } }, "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" }, "node_modules/pg-types": { "version": "2.2.0", @@ -11042,9 +13823,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -11112,9 +13893,9 @@ } }, "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -11145,6 +13926,11 @@ "process-warning": "^2.0.0" } }, + "node_modules/pino-http/node_modules/process-warning": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz", + "integrity": "sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==" + }, "node_modules/pino-pretty": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.3.0.tgz", @@ -11192,10 +13978,15 @@ "ieee754": "^1.2.1" } }, + "node_modules/pino-pretty/node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, "node_modules/pino-pretty/node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -11212,6 +14003,11 @@ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" }, + "node_modules/pino/node_modules/process-warning": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz", + "integrity": "sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==" + }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -11222,61 +14018,76 @@ } }, "node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { - "find-up": "^5.0.0" + "find-up": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/pkg-dir/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/pkg-dir/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pkg-dir/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/please-upgrade-node": { @@ -11288,6 +14099,70 @@ "semver-compare": "^1.0.0" } }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/polished": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", + "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.17.8" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "node_modules/postgres": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/postgres/-/postgres-3.3.1.tgz", @@ -11333,9 +14208,55 @@ } }, "node_modules/postgres-range": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.3.tgz", - "integrity": "sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.4.tgz", + "integrity": "sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==" + }, + "node_modules/postman-collection": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-4.5.0.tgz", + "integrity": "sha512-152JSW9pdbaoJihwjc7Q8lc3nPg/PC9lPTHdMk7SHnHhu/GBJB7b2yb9zG7Qua578+3PxkQ/HYBuXpDSvsf7GQ==", + "dev": true, + "dependencies": { + "@faker-js/faker": "5.5.3", + "file-type": "3.9.0", + "http-reasons": "0.1.0", + "iconv-lite": "0.6.3", + "liquid-json": "0.3.1", + "lodash": "4.17.21", + "mime-format": "2.0.1", + "mime-types": "2.1.35", + "postman-url-encoder": "3.0.5", + "semver": "7.6.3", + "uuid": "8.3.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postman-collection/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postman-url-encoder": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postman-url-encoder/-/postman-url-encoder-3.0.5.tgz", + "integrity": "sha512-jOrdVvzUXBC7C+9gkIkpDJ3HIxOHTIqjpQ4C1EMt1ZGeMvSEpbFCKq23DEfgsj46vMnDgyQf+1ZLp2Wm+bKSsA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=10" + } }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -11399,6 +14320,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -11414,9 +14344,9 @@ "dev": true }, "node_modules/process-warning": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", - "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" }, "node_modules/progress": { "version": "2.0.3", @@ -11439,6 +14369,11 @@ "node": "^16 || ^18 || >=20" } }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", @@ -11464,6 +14399,23 @@ "node": ">= 6" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, "node_modules/propagate": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", @@ -11506,17 +14458,17 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } }, "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -11533,6 +14485,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", "dev": true, "engines": { "node": ">=0.6.0", @@ -11578,6 +14531,37 @@ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dev": true, + "peer": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", + "dev": true, + "peer": true + }, + "node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dev": true, + "peer": true, + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -11608,12 +14592,63 @@ "node": ">= 0.8" } }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, + "node_modules/react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-tabs": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-6.0.2.tgz", + "integrity": "sha512-aQXTKolnM28k3KguGDBSAbJvcowOQr23A+CUJdzJtOSDOtTwzEaJA+1U4KwhNL9+Obe+jFS7geuvA7ICQPXOnQ==", + "dev": true, + "dependencies": { + "clsx": "^2.0.0", + "prop-types": "^15.5.0" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -11647,21 +14682,78 @@ "node": ">= 12.13.0" } }, + "node_modules/redoc": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.1.5.tgz", + "integrity": "sha512-POSbVg+7WLf+/5/c6GWLxL7+9t2D+1WlZdLN0a6qaCQc+ih3XYzteRBkXEN5kjrYrRNjdspfxTZkDLN5WV3Tzg==", + "dev": true, + "dependencies": { + "@cfaester/enzyme-adapter-react-18": "^0.8.0", + "@redocly/openapi-core": "^1.4.0", + "classnames": "^2.3.2", + "decko": "^1.2.0", + "dompurify": "^3.0.6", + "eventemitter3": "^5.0.1", + "json-pointer": "^0.6.2", + "lunr": "^2.3.9", + "mark.js": "^8.11.1", + "marked": "^4.3.0", + "mobx-react": "^9.1.1", + "openapi-sampler": "^1.5.0", + "path-browserify": "^1.0.1", + "perfect-scrollbar": "^1.5.5", + "polished": "^4.2.2", + "prismjs": "^1.29.0", + "prop-types": "^15.8.1", + "react-tabs": "^6.0.2", + "slugify": "~1.4.7", + "stickyfill": "^1.1.1", + "swagger2openapi": "^7.0.8", + "url-template": "^2.0.8" + }, + "engines": { + "node": ">=6.9", + "npm": ">=3.0.0" + }, + "peerDependencies": { + "core-js": "^3.1.4", + "mobx": "^6.0.4", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.4 || ^17.0.0 || ^18.0.0", + "styled-components": "^4.1.1 || ^5.1.1 || ^6.0.5" + } + }, + "node_modules/redoc/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/reftools": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", + "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", + "dev": true, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -11843,11 +14935,13 @@ } }, "node_modules/ret": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz", - "integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==", + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "peer": true, "engines": { - "node": ">=10" + "node": ">=0.12" } }, "node_modules/retry": { @@ -11868,9 +14962,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, "node_modules/rimraf": { "version": "5.0.0", @@ -11881,50 +14975,39 @@ "glob": "^10.0.0" }, "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -11936,6 +15019,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -12009,6 +15101,17 @@ "uuid": "bin/uuid" } }, + "node_modules/rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", + "dev": true, + "peer": true, + "dependencies": { + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" + } + }, "node_modules/run-exclusive": { "version": "2.2.19", "resolved": "https://registry.npmjs.org/run-exclusive/-/run-exclusive-2.2.19.tgz", @@ -12050,13 +15153,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -12087,15 +15190,18 @@ ] }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12108,6 +15214,14 @@ "ret": "~0.4.0" } }, + "node_modules/safe-regex2/node_modules/ret": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz", + "integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==", + "engines": { + "node": ">=10" + } + }, "node_modules/safe-stable-stringify": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", @@ -12121,18 +15235,24 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/secure-json-parse": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -12219,33 +15339,36 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.0.tgz", + "integrity": "sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==" }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -12268,6 +15391,12 @@ "sha.js": "bin.js" } }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "dev": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12296,14 +15425,72 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dev": true, + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dev": true, + "dependencies": { + "should-type": "^1.4.0" + } + }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "dev": true, + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", + "dev": true + }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dev": true, + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "dev": true + }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12316,9 +15503,16 @@ "dev": true }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/simple-update-notifier": { "version": "2.0.0", @@ -12332,6 +15526,33 @@ "node": ">=10" } }, + "node_modules/simple-websocket": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.1.0.tgz", + "integrity": "sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "debug": "^4.3.1", + "queue-microtask": "^1.2.2", + "randombytes": "^2.1.0", + "readable-stream": "^3.6.0", + "ws": "^7.4.2" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -12347,6 +15568,15 @@ "node": ">=8" } }, + "node_modules/slugify": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz", + "integrity": "sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -12373,23 +15603,24 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dependencies": { - "ws": "~8.11.0" + "debug": "~4.3.4", + "ws": "~8.17.1" } }, "node_modules/socket.io-adapter/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -12428,15 +15659,15 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, @@ -12453,10 +15684,21 @@ "node": ">= 10" } }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/sonic-boom": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz", - "integrity": "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -12469,6 +15711,15 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -12479,9 +15730,9 @@ } }, "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", "dev": true }, "node_modules/split2": { @@ -12493,10 +15744,9 @@ } }, "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" }, "node_modules/sshpk": { "version": "1.18.0", @@ -12522,23 +15772,20 @@ "node": ">=0.10.0" } }, + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, "node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dependencies": { - "minipass": "^7.0.3" + "minipass": "^3.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ssri/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/stack-utils": { @@ -12578,9 +15825,9 @@ } }, "node_modules/stacks-encoding-native-js/node_modules/@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==" }, "node_modules/statuses": { "version": "2.0.1", @@ -12598,6 +15845,12 @@ "node": ">=0.10.0" } }, + "node_modules/stickyfill": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz", + "integrity": "sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA==", + "dev": true + }, "node_modules/stream-wormhole": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/stream-wormhole/-/stream-wormhole-1.1.0.tgz", @@ -12650,6 +15903,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -12660,14 +15914,15 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -12677,28 +15932,31 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12720,6 +15978,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -12737,12 +15996,15 @@ } }, "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-json-comments": { @@ -12756,11 +16018,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/styled-components": { + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.12.tgz", + "integrity": "sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA==", + "dev": true, + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.38", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "dev": true + }, "node_modules/superagent": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", - "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at .", + "deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net", "dev": true, "dependencies": { "component-emitter": "^1.2.0", @@ -12851,14 +16153,18 @@ } }, "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -12873,40 +16179,62 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "node_modules/swagger2openapi": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", + "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", + "dev": true, "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "call-me-maybe": "^1.0.1", + "node-fetch": "^2.6.1", + "node-fetch-h2": "^2.3.0", + "node-readfiles": "^0.2.0", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^5.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" }, + "bin": { + "boast": "boast.js", + "oas-validate": "oas-validate.js", + "swagger2openapi": "swagger2openapi.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/swagger2openapi/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dependencies": { - "minipass": "^3.0.0" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -12933,6 +16261,28 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-extensions": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", @@ -12952,9 +16302,9 @@ "dev": true }, "node_modules/thread-stream": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", - "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", + "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", "dependencies": { "real-require": "^0.2.0" } @@ -13019,32 +16369,14 @@ } }, "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, "bin": { "nodetouch": "bin/nodetouch.js" } }, - "node_modules/touch/node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -13062,6 +16394,12 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "node_modules/traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==", + "dev": true + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -13180,10 +16518,66 @@ } } }, + "node_modules/ts-unused-exports/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-unused-exports/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-unused-exports/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-unused-exports/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/ts-unused-exports/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -13211,9 +16605,9 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, "node_modules/tsutils": { @@ -13308,29 +16702,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -13340,16 +16735,17 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -13359,14 +16755,20 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13389,6 +16791,19 @@ "node": ">=14.17" } }, + "node_modules/uglify-js": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", + "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/uint8array-tools": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/uint8array-tools/-/uint8array-tools-0.0.7.tgz", @@ -13447,25 +16862,25 @@ } }, "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dependencies": { - "unique-slug": "^4.0.0" + "unique-slug": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dependencies": { "imurmurhash": "^0.1.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/universal-user-agent": { @@ -13483,9 +16898,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -13502,8 +16917,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -13520,6 +16935,21 @@ "punycode": "^2.1.0" } }, + "node_modules/url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==", + "dev": true + }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "dev": true, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/utf-8-validate": { "version": "5.0.7", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", @@ -13567,9 +16997,9 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", @@ -13580,6 +17010,43 @@ "node": ">=10.12.0" } }, + "node_modules/validate.io-array": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", + "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==", + "dev": true + }, + "node_modules/validate.io-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", + "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==", + "dev": true + }, + "node_modules/validate.io-integer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", + "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", + "dev": true, + "dependencies": { + "validate.io-number": "^1.0.3" + } + }, + "node_modules/validate.io-integer-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", + "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", + "dev": true, + "dependencies": { + "validate.io-array": "^1.0.3", + "validate.io-integer": "^1.0.4" + } + }, + "node_modules/validate.io-number": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", + "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==", + "dev": true + }, "node_modules/varuint-bitcoin": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", @@ -13672,16 +17139,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -13722,6 +17189,21 @@ "bs58check": "<3.0.0" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -13743,6 +17225,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13755,6 +17238,69 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -13773,6 +17319,12 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", @@ -13824,14 +17376,22 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/package.json b/package.json index 48ffccb9f..3c6edda50 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,13 @@ "test:integration:btc-faucet": "concurrently \"docker compose -f docker/docker-compose.dev.postgres.yml -f docker/docker-compose.dev.bitcoind.yml up --force-recreate -V\" \"cross-env NODE_ENV=test jest --config ./tests/jest.config.btc-faucet.js --no-cache --runInBand; npm run devenv:stop\"", "generate:git-info": "rimraf .git-info && api-toolkit-git-info", "generate:openapi": "node -r ts-node/register/transpile-only ./src/openapi-generator.ts", + "generate:redoc": "redocly build-docs ./docs/openapi.yaml --output ./docs/.tmp/index.html", + "generate:postman": "openapi2postmanv2 --spec ./docs/openapi.yaml --output ./docs/.tmp/collection.json --options folderStrategy=Tags,requestParametersResolution=Example,exampleParametersResolution=Example,schemaFaker=false 2>/dev/null", + "generate:client": "openapi-typescript ./docs/openapi.yaml -o ./client/src/generated/schema.d.ts", "build": "npm run generate:git-info && rimraf ./lib && tsc -p tsconfig.build.json", "build:tests": "tsc -p tsconfig.json", - "build:docs": "npm ci --prefix docs && npm run build --prefix docs && npm ci --prefix client && npm run generate:docs --prefix client", + "build:docs": "npm run generate:git-info && npm run generate:openapi && npm run generate:redoc", + "build:client": "npm run generate:git-info && npm run generate:openapi && npm run generate:client", "start": "node ./lib/index.js", "lint": "npm run lint:eslint && npm run lint:prettier", "lint:unused-exports": "ts-unused-exports tsconfig.json --showLineNumber", @@ -156,6 +160,7 @@ "@actions/io": "1.1.1", "@commitlint/cli": "19.2.2", "@commitlint/config-conventional": "10.0.0", + "@redocly/cli": "1.19.0", "@stacks/eslint-config": "1.2.0", "@types/cors": "2.8.12", "@types/dotenv-flow": "3.2.0", @@ -184,6 +189,8 @@ "jest": "29.7.0", "nock": "13.5.4", "nodemon": "3.1.0", + "openapi-to-postmanv2": "4.23.1", + "openapi-typescript": "7.3.0", "pg-connection-string": "2.5.0", "prettier": "2.8.8", "rimraf": "5.0.0", diff --git a/src/test-utils/test-helpers.ts b/src/test-utils/test-helpers.ts index cd1350e0b..3150e3341 100644 --- a/src/test-utils/test-helpers.ts +++ b/src/test-utils/test-helpers.ts @@ -422,7 +422,7 @@ export async function fetchGet(endpoint: string): Promise { const result = await supertest(testEnv.api.server).get(endpoint); // Follow redirects if (result.status >= 300 && result.status < 400) { - return await fetchGet(result.header.location as string); + return await fetchGet(result.header.location); } expect(result.status).toBe(200); expect(result.type).toBe('application/json'); From b960a138b4ee042e0eb90433430757645f391330 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Mon, 12 Aug 2024 14:56:13 +0200 Subject: [PATCH 47/56] feat: refactor event-server from express to fastify --- src/api/controllers/cache-controller.ts | 58 +----- src/api/routes/v2/pox.ts | 1 - src/api/routes/v2/schemas.ts | 4 +- src/event-stream/event-server.ts | 248 +++++++++++------------- 4 files changed, 110 insertions(+), 201 deletions(-) diff --git a/src/api/controllers/cache-controller.ts b/src/api/controllers/cache-controller.ts index f6eb74487..e6ee858a5 100644 --- a/src/api/controllers/cache-controller.ts +++ b/src/api/controllers/cache-controller.ts @@ -1,14 +1,10 @@ -import { RequestHandler, Request, Response } from 'express'; import * as prom from 'prom-client'; import { normalizeHashString } from '../../helpers'; -import { asyncHandler } from '../async-handler'; import { PgStore } from '../../datastore/pg-store'; import { logger } from '../../logger'; import { sha256 } from '@hirosystems/api-toolkit'; import { FastifyReply, FastifyRequest } from 'fastify'; -const CACHE_OK = Symbol('cache_ok'); - /** * A `Cache-Control` header used for re-validation based caching. * * `public` == allow proxies/CDNs to cache as opposed to only local browsers. @@ -125,62 +121,10 @@ export function parseIfNoneMatchHeader( } } -/** - * Parse the `ETag` from the given request's `If-None-Match` header which represents the chain tip or - * mempool state associated with the client's cached response. Query the current state from the db, and - * compare the two. - * This function is also responsible for tracking the prometheus metrics associated with cache hits/misses. - * @returns `CACHE_OK` if the client's cached response is up-to-date with the current state, otherwise, - * returns a string which can be used later for setting the cache control `ETag` response header. - */ -async function checkETagCacheOK( - db: PgStore, - req: Request, - etagType: ETagType -): Promise { - const metrics = getETagMetrics(); - const etag = await calculateETag(db, etagType, req); - if (!etag || etag === ETAG_EMPTY) { - return; - } - // Parse ETag values from the request's `If-None-Match` header, if any. - // Note: node.js normalizes `IncomingMessage.headers` to lowercase. - const ifNoneMatch = parseIfNoneMatchHeader(req.headers['if-none-match']); - if (ifNoneMatch === undefined || ifNoneMatch.length === 0) { - // No if-none-match header specified. - if (etagType === ETagType.chainTip) { - metrics.chainTipCacheNoHeader.inc(); - } else { - metrics.mempoolCacheNoHeader.inc(); - } - return etag; - } - if (ifNoneMatch.includes(etag)) { - // The client cache's ETag matches the current state, so no need to re-process the request - // server-side as there will be no change in response. Record this as a "cache hit" and return CACHE_OK. - if (etagType === ETagType.chainTip) { - metrics.chainTipCacheHits.inc(); - } else { - metrics.mempoolCacheHits.inc(); - } - return CACHE_OK; - } else { - // The client cache's ETag is associated with an different block than current latest state, typically - // an older block or a forked block, so the client's cached response is stale and should not be used. - // Record this as a "cache miss" and return the current state. - if (etagType === ETagType.chainTip) { - metrics.chainTipCacheMisses.inc(); - } else { - metrics.mempoolCacheMisses.inc(); - } - return etag; - } -} - async function calculateETag( db: PgStore, etagType: ETagType, - req: Request | FastifyRequest + req: FastifyRequest ): Promise { switch (etagType) { case ETagType.chainTip: diff --git a/src/api/routes/v2/pox.ts b/src/api/routes/v2/pox.ts index 9f7171d20..eb9e0117e 100644 --- a/src/api/routes/v2/pox.ts +++ b/src/api/routes/v2/pox.ts @@ -1,4 +1,3 @@ -import * as express from 'express'; import { handleChainTipCache } from '../../controllers/cache-controller'; import { parseDbPoxCycle, parseDbPoxSigner, parseDbPoxSignerStacker } from './helpers'; import { InvalidRequestError, NotFoundError } from '../../../errors'; diff --git a/src/api/routes/v2/schemas.ts b/src/api/routes/v2/schemas.ts index f4d7bd3e3..9285d52b3 100644 --- a/src/api/routes/v2/schemas.ts +++ b/src/api/routes/v2/schemas.ts @@ -1,8 +1,6 @@ import { Type, Static, TSchema } from '@sinclair/typebox'; -import { TypeCompiler } from '@sinclair/typebox/compiler'; import { ResourceType, pagingQueryLimits } from '../../../api/pagination'; -import { Request, Response } from 'express'; -import Ajv, { ValidateFunction } from 'ajv'; +import Ajv from 'ajv'; import addFormats from 'ajv-formats'; import { has0xPrefix, isTestEnv } from '@hirosystems/api-toolkit'; diff --git a/src/event-stream/event-server.ts b/src/event-stream/event-server.ts index cc2b62a83..e31de16c9 100644 --- a/src/event-stream/event-server.ts +++ b/src/event-stream/event-server.ts @@ -1,9 +1,6 @@ import { inspect } from 'util'; import * as net from 'net'; -import { createServer } from 'http'; -import * as express from 'express'; -import * as bodyParser from 'body-parser'; -import { asyncHandler } from '../api/async-handler'; +import Fastify, { FastifyRequest, FastifyServerOptions } from 'fastify'; import PQueue from 'p-queue'; import * as prom from 'prom-client'; import { @@ -79,9 +76,9 @@ import { } from '../datastore/helpers'; import { handleBnsImport } from '../import-v1'; import { decodePoxSyntheticPrintEvent } from './pox-event-parsing'; -import { logger, loggerMiddleware } from '../logger'; +import { logger } from '../logger'; import * as zoneFileParser from 'zone-file'; -import { hexToBuffer, isProdEnv, stopwatch } from '@hirosystems/api-toolkit'; +import { hexToBuffer, isProdEnv, PINO_LOGGER_CONFIG, stopwatch } from '@hirosystems/api-toolkit'; import { POX_2_CONTRACT_NAME, POX_3_CONTRACT_NAME, POX_4_CONTRACT_NAME } from '../pox-helpers'; const IBD_PRUNABLE_ROUTES = ['/new_mempool_tx', '/drop_mempool_tx', '/new_microblocks']; @@ -931,174 +928,145 @@ export async function startEventServer(opts: { eventHost = hostname; } - const app = express(); + const bodyLimit = 1_000_000 * 500; // 500MB body limit + const loggerOpts: FastifyServerOptions['logger'] = { + ...PINO_LOGGER_CONFIG, + name: 'stacks-node-event', + }; + const app = Fastify({ + bodyLimit, + trustProxy: true, + logger: loggerOpts, + ignoreTrailingSlash: true, + }); - const handleRawEventRequest = async (req: express.Request) => { - await messageHandler.handleRawEventRequest(req.path, req.body, db); + const handleRawEventRequest = async (req: FastifyRequest) => { + await messageHandler.handleRawEventRequest(req.url, req.body, db); if (logger.level === 'debug') { - const eventPath = req.path; let payload = JSON.stringify(req.body); // Skip logging massive event payloads, this _should_ only exclude the genesis block payload which is ~80 MB. if (payload.length > 10_000_000) { payload = 'payload body too large for logging'; } - logger.debug(`${eventPath} ${payload}`, { component: 'stacks-node-event' }); + logger.debug(`${req.url} ${payload}`, { component: 'stacks-node-event' }); } }; - app.use(loggerMiddleware); - app.use(bodyParser.json({ type: 'application/json', limit: '500MB' })); - const ibdHeight = getIbdBlockHeight(); if (ibdHeight) { - app.use(IBD_PRUNABLE_ROUTES, async (req, res, next) => { - try { - const chainTip = await db.getChainTip(db.sql); - if (chainTip.block_height > ibdHeight) { - next(); - } else { - await handleRawEventRequest(req); - res.status(200).send(`IBD`); + app.addHook('preHandler', async (req, res) => { + if (IBD_PRUNABLE_ROUTES.includes(req.url)) { + try { + const chainTip = await db.getChainTip(db.sql); + if (chainTip.block_height <= ibdHeight) { + await handleRawEventRequest(req); + await res.status(200).send(`IBD`); + } + } catch (error) { + await res + .status(500) + .send({ message: 'A middleware error occurred processing the request in IBD mode.' }); } - } catch (error) { - res - .status(500) - .json({ message: 'A middleware error occurred processing the request in IBD mode.' }); } }); } - app.get('/', (req, res) => { - res + app.get('/', async (_req, res) => { + await res .status(200) - .json({ status: 'ready', msg: 'API event server listening for core-node POST messages' }); + .send({ status: 'ready', msg: 'API event server listening for core-node POST messages' }); }); - app.post( - '/new_block', - asyncHandler(async (req, res) => { - try { - const blockMessage: CoreNodeBlockMessage = req.body; - await messageHandler.handleBlockMessage(opts.chainId, blockMessage, db); - if (blockMessage.block_height === 1) { - await handleBnsImport(db); - } - await handleRawEventRequest(req); - res.status(200).json({ result: 'ok' }); - } catch (error) { - logger.error(error, 'error processing core-node /new_block'); - res.status(500).json({ error: error }); - } - }) - ); - - app.post( - '/new_burn_block', - asyncHandler(async (req, res) => { - try { - const msg: CoreNodeBurnBlockMessage = req.body; - await messageHandler.handleBurnBlock(msg, db); - await handleRawEventRequest(req); - res.status(200).json({ result: 'ok' }); - } catch (error) { - logger.error(error, 'error processing core-node /new_burn_block'); - res.status(500).json({ error: error }); + app.post('/new_block', async (req, res) => { + try { + const blockMessage = req.body as CoreNodeBlockMessage; + await messageHandler.handleBlockMessage(opts.chainId, blockMessage, db); + if (blockMessage.block_height === 1) { + await handleBnsImport(db); } - }) - ); + await handleRawEventRequest(req); + await res.status(200).send({ result: 'ok' }); + } catch (error) { + logger.error(error, 'error processing core-node /new_block'); + await res.status(500).send({ error: error }); + } + }); - app.post( - '/new_mempool_tx', - asyncHandler(async (req, res) => { - try { - const rawTxs: string[] = req.body; - await messageHandler.handleMempoolTxs(rawTxs, db); - await handleRawEventRequest(req); - res.status(200).json({ result: 'ok' }); - } catch (error) { - logger.error(error, 'error processing core-node /new_mempool_tx'); - res.status(500).json({ error: error }); - } - }) - ); + app.post('/new_burn_block', async (req, res) => { + try { + const msg = req.body as CoreNodeBurnBlockMessage; + await messageHandler.handleBurnBlock(msg, db); + await handleRawEventRequest(req); + await res.status(200).send({ result: 'ok' }); + } catch (error) { + logger.error(error, 'error processing core-node /new_burn_block'); + await res.status(500).send({ error: error }); + } + }); - app.post( - '/drop_mempool_tx', - asyncHandler(async (req, res) => { - try { - const msg: CoreNodeDropMempoolTxMessage = req.body; - await messageHandler.handleDroppedMempoolTxs(msg, db); - await handleRawEventRequest(req); - res.status(200).json({ result: 'ok' }); - } catch (error) { - logger.error(error, 'error processing core-node /drop_mempool_tx'); - res.status(500).json({ error: error }); - } - }) - ); + app.post('/new_mempool_tx', async (req, res) => { + try { + const rawTxs = req.body as string[]; + await messageHandler.handleMempoolTxs(rawTxs, db); + await handleRawEventRequest(req); + await res.status(200).send({ result: 'ok' }); + } catch (error) { + logger.error(error, 'error processing core-node /new_mempool_tx'); + await res.status(500).send({ error: error }); + } + }); - app.post( - '/attachments/new', - asyncHandler(async (req, res) => { - try { - const msg: CoreNodeAttachmentMessage[] = req.body; - await messageHandler.handleNewAttachment(msg, db); - await handleRawEventRequest(req); - res.status(200).json({ result: 'ok' }); - } catch (error) { - logger.error(error, 'error processing core-node /attachments/new'); - res.status(500).json({ error: error }); - } - }) - ); + app.post('/drop_mempool_tx', async (req, res) => { + try { + const msg = req.body as CoreNodeDropMempoolTxMessage; + await messageHandler.handleDroppedMempoolTxs(msg, db); + await handleRawEventRequest(req); + await res.status(200).send({ result: 'ok' }); + } catch (error) { + logger.error(error, 'error processing core-node /drop_mempool_tx'); + await res.status(500).send({ error: error }); + } + }); - app.post( - '/new_microblocks', - asyncHandler(async (req, res) => { - try { - const msg: CoreNodeMicroblockMessage = req.body; - await messageHandler.handleMicroblockMessage(opts.chainId, msg, db); - await handleRawEventRequest(req); - res.status(200).json({ result: 'ok' }); - } catch (error) { - logger.error(error, 'error processing core-node /new_microblocks'); - res.status(500).json({ error: error }); - } - }) - ); + app.post('/attachments/new', async (req, res) => { + try { + const msg = req.body as CoreNodeAttachmentMessage[]; + await messageHandler.handleNewAttachment(msg, db); + await handleRawEventRequest(req); + await res.status(200).send({ result: 'ok' }); + } catch (error) { + logger.error(error, 'error processing core-node /attachments/new'); + await res.status(500).send({ error: error }); + } + }); - app.post('*', (req, res, next) => { - res.status(404).json({ error: `no route handler for ${req.path}` }); - logger.error(`Unexpected event on path ${req.path}`); - next(); + app.post('/new_microblocks', async (req, res) => { + try { + const msg = req.body as CoreNodeMicroblockMessage; + await messageHandler.handleMicroblockMessage(opts.chainId, msg, db); + await handleRawEventRequest(req); + await res.status(200).send({ result: 'ok' }); + } catch (error) { + logger.error(error, 'error processing core-node /new_microblocks'); + await res.status(500).send({ error: error }); + } }); - const server = createServer(app); - await new Promise((resolve, reject) => { - server.once('error', error => { - reject(error); - }); - server.listen(eventPort, eventHost, () => { - resolve(); - }); + app.post('*', async (req, res) => { + await res.status(404).send({ error: `no route handler for ${req.url}` }); + logger.error(`Unexpected event on path ${req.url}`); }); - const addr = server.address(); - if (addr === null) { - throw new Error('server missing address'); - } - const addrStr = typeof addr === 'string' ? addr : `${addr.address}:${addr.port}`; - logger.info(`Event observer listening at: http://${addrStr}`); + const addr = await app.listen({ port: eventPort, host: eventHost }); + logger.info(`Event observer listening at: ${addr}`); const closeFn = async () => { - await new Promise((resolve, reject) => { - logger.info('Closing event observer server...'); - server.close(error => (error ? reject(error) : resolve())); - }); + logger.info('Closing event observer server...'); + await app.close(); }; - const eventStreamServer: EventStreamServer = Object.assign(server, { - serverAddress: addr as net.AddressInfo, + const eventStreamServer: EventStreamServer = Object.assign(app.server, { + serverAddress: app.addresses()[0], closeAsync: closeFn, }); return eventStreamServer; From 5e90a07cd07fa9700e9ae6ad5eb1d581e2ccbaf3 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Tue, 13 Aug 2024 16:12:36 +0200 Subject: [PATCH 48/56] chore: expose more helper types in the client lib --- client/src/types.d.ts | 3 +++ src/openapi-generator.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/client/src/types.d.ts b/client/src/types.d.ts index 09e250de9..37e877344 100644 --- a/client/src/types.d.ts +++ b/client/src/types.d.ts @@ -4,6 +4,9 @@ export type Transaction = operations['get_transaction_list']['responses']['200'] export type MempoolTransaction = operations['get_mempool_transaction_list']['responses']['200']['content']['application/json']['results'][number]; export type Block = operations['get_block_by_height']['responses']['200']['content']['application/json']; export type Microblock = operations['get_microblock_by_hash']['responses']['200']['content']['application/json']; +export type NakamotoBlock = operations['get_block']['responses']['200']['content']['application/json']; +export type BurnBlock = operations['get_burn_blocks']['responses']['200']['content']['application/json']['results'][number]; +export type SmartContract = operations['get_contract_by_id']['responses']['200']['content']['application/json']; export type AddressTransactionWithTransfers = operations['get_account_transactions_with_transfers']['responses']['200']['content']['application/json']['results'][number]; export type AddressStxBalanceResponse = operations['get_account_stx_balance']['responses']['200']['content']['application/json']; export type RpcAddressTxNotificationParams = AddressTransactionWithTransfers & { diff --git a/src/openapi-generator.ts b/src/openapi-generator.ts index b0906ed53..817e2492d 100644 --- a/src/openapi-generator.ts +++ b/src/openapi-generator.ts @@ -1,7 +1,7 @@ import Fastify from 'fastify'; import { TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; import FastifySwagger from '@fastify/swagger'; -import { mkdirSync, writeFileSync } from 'fs'; +import { writeFileSync } from 'fs'; import { OpenApiSchemaOptions } from './api/schemas/openapi'; import { StacksApiRoutes } from './api/init'; From 8b8c58516846a199a4d53c9b65bb8463ceb2a3c7 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Tue, 13 Aug 2024 16:39:59 +0200 Subject: [PATCH 49/56] ci: fix client npm lib building --- .releaserc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.releaserc b/.releaserc index 276c09152..42bc8fe1a 100644 --- a/.releaserc +++ b/.releaserc @@ -25,6 +25,12 @@ "preset": "conventionalcommits" } ], + [ + "@semantic-release/exec", + { + "prepareCmd": "npm ci" + } + ], [ "@semantic-release/exec", { From d8b13e293a203f07e93f1c9c619daa20a4054317 Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 14 Aug 2024 16:14:30 +0200 Subject: [PATCH 50/56] fix: openapi and client support for comma-separated query params --- client/src/generated/schema.d.ts | 6 +- docs/openapi.json | 163 +++++++----------- docs/openapi.yaml | 99 +++++------ src/api/routes/tx.ts | 51 +++--- .../schemas/entities/transaction-events.ts | 5 - src/api/schemas/entities/transactions.ts | 9 +- src/api/schemas/params.ts | 9 - src/api/schemas/util.ts | 21 +-- src/test-utils/test-builders.ts | 31 ++-- src/tests/tx-tests.ts | 81 ++++++++- 10 files changed, 236 insertions(+), 239 deletions(-) diff --git a/client/src/generated/schema.d.ts b/client/src/generated/schema.d.ts index 9ad324d3f..0d975574d 100644 --- a/client/src/generated/schema.d.ts +++ b/client/src/generated/schema.d.ts @@ -1812,7 +1812,7 @@ export interface operations { offset?: number; /** @description Results per page */ limit?: number; - type?: (("coinbase" | "token_transfer" | "smart_contract" | "contract_call" | "poison_microblock" | "tenure_change") | string)[]; + type?: ("coinbase" | "token_transfer" | "smart_contract" | "contract_call" | "poison_microblock" | "tenure_change")[]; /** * @description Include data from unanchored (i.e. unconfirmed) microblocks * @example true @@ -3177,7 +3177,7 @@ export interface operations { get_tx_list_details: { parameters: { query: { - tx_id: (string)[]; + tx_id: string[]; /** @description Results per page */ event_limit?: number; /** @description Result offset */ @@ -6496,7 +6496,7 @@ export interface operations { */ tx_id?: string; address?: string; - type?: (("smart_contract_log" | "stx_lock" | "stx_asset" | "fungible_token_asset" | "non_fungible_token_asset") | string)[]; + type?: ("smart_contract_log" | "stx_lock" | "stx_asset" | "fungible_token_asset" | "non_fungible_token_asset")[]; /** @description Result offset */ offset?: number; /** @description Results per page */ diff --git a/docs/openapi.json b/docs/openapi.json index b1f95ec32..d91a5948e 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -158,52 +158,40 @@ "items": { "anyOf": [ { - "anyOf": [ - { - "type": "string", - "enum": [ - "coinbase" - ] - }, - { - "type": "string", - "enum": [ - "token_transfer" - ] - }, - { - "type": "string", - "enum": [ - "smart_contract" - ] - }, - { - "type": "string", - "enum": [ - "contract_call" - ] - }, - { - "type": "string", - "enum": [ - "poison_microblock" - ] - }, - { - "type": "string", - "enum": [ - "tenure_change" - ] - } + "type": "string", + "enum": [ + "coinbase" ] }, { - "pattern": "^(coinbase|token_transfer|smart_contract|contract_call|poison_microblock|tenure_change)(,(coinbase|token_transfer|smart_contract|contract_call|poison_microblock|tenure_change))*$", - "description": "Comma separated list of transaction types", - "examples": [ - "coinbase,token_transfer,smart_contract" - ], - "type": "string" + "type": "string", + "enum": [ + "token_transfer" + ] + }, + { + "type": "string", + "enum": [ + "smart_contract" + ] + }, + { + "type": "string", + "enum": [ + "contract_call" + ] + }, + { + "type": "string", + "enum": [ + "poison_microblock" + ] + }, + { + "type": "string", + "enum": [ + "tenure_change" + ] } ] } @@ -6695,26 +6683,13 @@ "schema": { "type": "array", "items": { - "anyOf": [ - { - "pattern": "^(0x)?[a-fA-F0-9]{64}$", - "title": "Transaction ID", - "description": "Transaction ID", - "examples": [ - "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6" - ], - "type": "string" - }, - { - "pattern": "^(0x)?[a-fA-F0-9]{64}(,(0x)?[a-fA-F0-9]{64})*$", - "title": "Comma separated list of transaction IDs", - "description": "Comma separate list of transaction IDs", - "examples": [ - "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6,0xbf06fc00be4333166b9a9be0557b9f560bee8700dfe7988bd3d3df1f1a077ed8" - ], - "type": "string" - } - ] + "pattern": "^(0x)?[a-fA-F0-9]{64}$", + "title": "Transaction ID", + "description": "Transaction ID", + "examples": [ + "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6" + ], + "type": "string" } }, "in": "query", @@ -22577,46 +22552,34 @@ "items": { "anyOf": [ { - "anyOf": [ - { - "type": "string", - "enum": [ - "smart_contract_log" - ] - }, - { - "type": "string", - "enum": [ - "stx_lock" - ] - }, - { - "type": "string", - "enum": [ - "stx_asset" - ] - }, - { - "type": "string", - "enum": [ - "fungible_token_asset" - ] - }, - { - "type": "string", - "enum": [ - "non_fungible_token_asset" - ] - } + "type": "string", + "enum": [ + "smart_contract_log" ] }, { - "pattern": "^(smart_contract_log|stx_lock|stx_asset|fungible_token_asset|non_fungible_token_asset)(,(smart_contract_log|stx_lock|stx_asset|fungible_token_asset|non_fungible_token_asset))*$", - "description": "Comma separated list of transaction event types", - "examples": [ - "smart_contract_log,stx_lock,stx_asset" - ], - "type": "string" + "type": "string", + "enum": [ + "stx_lock" + ] + }, + { + "type": "string", + "enum": [ + "stx_asset" + ] + }, + { + "type": "string", + "enum": [ + "fungible_token_asset" + ] + }, + { + "type": "string", + "enum": [ + "non_fungible_token_asset" + ] } ] } diff --git a/docs/openapi.yaml b/docs/openapi.yaml index e8ae62bac..ce80365c9 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -107,30 +107,24 @@ paths: type: array items: anyOf: - - anyOf: - - type: string - enum: - - coinbase - - type: string - enum: - - token_transfer - - type: string - enum: - - smart_contract - - type: string - enum: - - contract_call - - type: string - enum: - - poison_microblock - - type: string - enum: - - tenure_change - - pattern: ^(coinbase|token_transfer|smart_contract|contract_call|poison_microblock|tenure_change)(,(coinbase|token_transfer|smart_contract|contract_call|poison_microblock|tenure_change))*$ - description: Comma separated list of transaction types - examples: - - coinbase,token_transfer,smart_contract - type: string + - type: string + enum: + - coinbase + - type: string + enum: + - token_transfer + - type: string + enum: + - smart_contract + - type: string + enum: + - contract_call + - type: string + enum: + - poison_microblock + - type: string + enum: + - tenure_change in: query name: type required: false @@ -4447,20 +4441,13 @@ paths: - schema: type: array items: - anyOf: - - pattern: ^(0x)?[a-fA-F0-9]{64}$ - title: Transaction ID - description: Transaction ID - examples: - - "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13d\ - f3dd7a91c6" - type: string - - pattern: ^(0x)?[a-fA-F0-9]{64}(,(0x)?[a-fA-F0-9]{64})*$ - title: Comma separated list of transaction IDs - description: Comma separate list of transaction IDs - examples: - - 0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6,0xbf06fc00be4333166b9a9be0557b9f560bee8700dfe7988bd3d3df1f1a077ed8 - type: string + pattern: ^(0x)?[a-fA-F0-9]{64}$ + title: Transaction ID + description: Transaction ID + examples: + - "0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd\ + 7a91c6" + type: string in: query name: tx_id required: true @@ -14949,27 +14936,21 @@ paths: type: array items: anyOf: - - anyOf: - - type: string - enum: - - smart_contract_log - - type: string - enum: - - stx_lock - - type: string - enum: - - stx_asset - - type: string - enum: - - fungible_token_asset - - type: string - enum: - - non_fungible_token_asset - - pattern: ^(smart_contract_log|stx_lock|stx_asset|fungible_token_asset|non_fungible_token_asset)(,(smart_contract_log|stx_lock|stx_asset|fungible_token_asset|non_fungible_token_asset))*$ - description: Comma separated list of transaction event types - examples: - - smart_contract_log,stx_lock,stx_asset - type: string + - type: string + enum: + - smart_contract_log + - type: string + enum: + - stx_lock + - type: string + enum: + - stx_asset + - type: string + enum: + - fungible_token_asset + - type: string + enum: + - non_fungible_token_asset in: query name: type required: false diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index 970cbe6e2..c8ee57582 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -29,7 +29,6 @@ import { OffsetParam, OrderParamSchema, PrincipalSchema, - TransactionIdCommaListParamSchema, TransactionIdParamSchema, UnanchoredParamSchema, } from '../schemas/params'; @@ -43,7 +42,6 @@ import { TransactionSchema, TransactionSearchResponseSchema, TransactionTypeSchema, - TransactionTypeStringSchema, } from '../schemas/entities/transactions'; import { PaginatedResponse } from '../schemas/util'; import { @@ -54,11 +52,7 @@ import { TransactionEventsResponseSchema, TransactionResultsSchema, } from '../schemas/responses/responses'; -import { - TransactionEventSchema, - TransactionEventTypeCommaListSchema, - TransactionEventTypeSchema, -} from '../schemas/entities/transaction-events'; +import { TransactionEventTypeSchema } from '../schemas/entities/transaction-events'; export const TxRoutes: FastifyPluginAsync< Record, @@ -69,6 +63,12 @@ export const TxRoutes: FastifyPluginAsync< '/', { preHandler: handleChainTipCache, + preValidation: (req, _reply, done) => { + if (typeof req.query.type === 'string') { + req.query.type = (req.query.type as string).split(',') as typeof req.query.type; + } + done(); + }, schema: { operationId: 'get_transaction_list', summary: 'Get recent transactions', @@ -77,9 +77,7 @@ export const TxRoutes: FastifyPluginAsync< querystring: Type.Object({ offset: OffsetParam(), limit: LimitParam(ResourceType.Tx), - type: Type.Optional( - Type.Array(Type.Union([TransactionTypeSchema, TransactionTypeStringSchema])) - ), + type: Type.Optional(Type.Array(TransactionTypeSchema)), unanchored: UnanchoredParamSchema, order: Type.Optional(Type.Enum({ asc: 'asc', desc: 'desc' })), sort_by: Type.Optional( @@ -145,8 +143,7 @@ export const TxRoutes: FastifyPluginAsync< const limit = getPagingQueryLimit(ResourceType.Tx, req.query.limit); const offset = parsePagingQueryInput(req.query.offset ?? 0); - const typeQuery = req.query.type?.flatMap(t => t.split(',')); - const txTypeFilter = parseTxTypeStrings(typeQuery ?? []); + const txTypeFilter = parseTxTypeStrings(req.query.type ?? []); let fromAddress: string | undefined; if (typeof req.query.from_address === 'string') { @@ -205,15 +202,19 @@ export const TxRoutes: FastifyPluginAsync< '/multiple', { preHandler: handleMempoolCache, + preValidation: (req, _reply, done) => { + if (typeof req.query.tx_id === 'string') { + req.query.tx_id = (req.query.tx_id as string).split(',') as typeof req.query.tx_id; + } + done(); + }, schema: { operationId: 'get_tx_list_details', summary: 'Get list of details for transactions', description: `Retrieves a list of transactions for a given list of transaction IDs`, tags: ['Transactions'], querystring: Type.Object({ - tx_id: Type.Array( - Type.Union([TransactionIdParamSchema, TransactionIdCommaListParamSchema]) - ), + tx_id: Type.Array(TransactionIdParamSchema), event_limit: LimitParam(ResourceType.Tx), event_offset: OffsetParam(), unanchored: UnanchoredParamSchema, @@ -224,14 +225,12 @@ export const TxRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - const txList: string[] = req.query.tx_id.flatMap(t => t.split(',')); - const eventLimit = getPagingQueryLimit(ResourceType.Tx, req.query.event_limit); const eventOffset = parsePagingQueryInput(req.query.event_offset ?? 0); const includeUnanchored = req.query.unanchored ?? false; - txList.forEach(tx => validateRequestHexInput(tx)); + req.query.tx_id.forEach(tx => validateRequestHexInput(tx)); const txQuery = await searchTxs(fastify.db, { - txIds: txList, + txIds: req.query.tx_id, eventLimit, eventOffset, includeUnanchored, @@ -382,6 +381,12 @@ export const TxRoutes: FastifyPluginAsync< '/events', { preHandler: handleChainTipCache, + preValidation: (req, _reply, done) => { + if (typeof req.query.type === 'string') { + req.query.type = (req.query.type as string).split(',') as typeof req.query.type; + } + done(); + }, schema: { operationId: 'get_filtered_events', summary: 'Transaction Events', @@ -391,11 +396,7 @@ export const TxRoutes: FastifyPluginAsync< querystring: Type.Object({ tx_id: Type.Optional(TransactionIdParamSchema), address: Type.Optional(PrincipalSchema), - type: Type.Optional( - Type.Array( - Type.Union([TransactionEventTypeSchema, TransactionEventTypeCommaListSchema]) - ) - ), + type: Type.Optional(Type.Array(TransactionEventTypeSchema)), offset: OffsetParam(), limit: LimitParam(ResourceType.Event), }), @@ -433,7 +434,7 @@ export const TxRoutes: FastifyPluginAsync< validateRequestHexInput(addrOrTx.txId); } - const typeQuery = req.query.type?.flatMap(t => t.split(',')); + const typeQuery = req.query.type; let eventTypeFilter: DbEventTypeId[]; if (typeQuery && typeQuery.length > 0) { try { diff --git a/src/api/schemas/entities/transaction-events.ts b/src/api/schemas/entities/transaction-events.ts index c3913f52f..857039671 100644 --- a/src/api/schemas/entities/transaction-events.ts +++ b/src/api/schemas/entities/transaction-events.ts @@ -1,5 +1,4 @@ import { Static, Type } from '@sinclair/typebox'; -import { CommaStringList } from '../util'; export const TransactionEventAssetTypeSchema = Type.Enum({ transfer: 'transfer', @@ -15,10 +14,6 @@ const TransactionEventType = { non_fungible_token_asset: 'non_fungible_token_asset', }; export const TransactionEventTypeSchema = Type.Enum(TransactionEventType); -export const TransactionEventTypeCommaListSchema = CommaStringList(TransactionEventType, { - description: 'Comma separated list of transaction event types', - examples: ['smart_contract_log,stx_lock,stx_asset'], -}); const AbstractTransactionEventSchema = Type.Object( { diff --git a/src/api/schemas/entities/transactions.ts b/src/api/schemas/entities/transactions.ts index fd2450b18..27d5949c4 100644 --- a/src/api/schemas/entities/transactions.ts +++ b/src/api/schemas/entities/transactions.ts @@ -1,9 +1,9 @@ import { Static, Type } from '@sinclair/typebox'; -import { CommaStringList, Nullable } from '../util'; +import { Nullable } from '../util'; import { PostConditionModeSchema, PostConditionSchema } from './post-conditions'; import { TransactionEventSchema } from './transaction-events'; -const TransactionType = { +export const TransactionType = { coinbase: 'coinbase', token_transfer: 'token_transfer', smart_contract: 'smart_contract', @@ -12,11 +12,6 @@ const TransactionType = { tenure_change: 'tenure_change', } as const; export const TransactionTypeSchema = Type.Enum(TransactionType); -// Comma-separated list of transaction types, e.g. `coinbase,token_transfer` -export const TransactionTypeStringSchema = CommaStringList(TransactionType, { - description: 'Comma separated list of transaction types', - examples: ['coinbase,token_transfer,smart_contract'], -}); export const BaseTransactionSchemaProperties = { tx_id: Type.String({ diff --git a/src/api/schemas/params.ts b/src/api/schemas/params.ts index 43f08131b..7746d36b3 100644 --- a/src/api/schemas/params.ts +++ b/src/api/schemas/params.ts @@ -38,15 +38,6 @@ export const TransactionIdParamSchema = Type.String({ examples: ['0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6'], }); -export const TransactionIdCommaListParamSchema = Type.String({ - pattern: isTestEnv ? undefined : '^(0x)?[a-fA-F0-9]{64}(,(0x)?[a-fA-F0-9]{64})*$', - title: 'Comma separated list of transaction IDs', - description: 'Comma separate list of transaction IDs', - examples: [ - '0xf6bd5f4a7b26184a3466340b2e99fd003b4962c0e382a7e4b6a13df3dd7a91c6,0xbf06fc00be4333166b9a9be0557b9f560bee8700dfe7988bd3d3df1f1a077ed8', - ], -}); - export const BlockHeightSchema = Type.Integer({ minimum: 0, title: 'Block height', diff --git a/src/api/schemas/util.ts b/src/api/schemas/util.ts index 7c6275fce..ea60a75d3 100644 --- a/src/api/schemas/util.ts +++ b/src/api/schemas/util.ts @@ -1,11 +1,4 @@ -import { - ObjectOptions, - StringOptions, - TEnumKey, - TEnumValue, - TSchema, - Type, -} from '@sinclair/typebox'; +import { ObjectOptions, TSchema, Type } from '@sinclair/typebox'; export const Nullable = (schema: T) => Type.Union([schema, Type.Null()]); export const OptionalNullable = (schema: T) => Type.Optional(Nullable(schema)); @@ -19,15 +12,3 @@ export const PaginatedResponse = (type: T, options?: ObjectOp }, options ); - -// Comma-separated list of enum values, e.g. `age,size,fee` -export const CommaStringList = >( - item: T, - options?: StringOptions -) => { - const anyItemPattern = Object.values(item).join('|'); - return Type.String({ - pattern: `^(${anyItemPattern})(,(${anyItemPattern}))*$`, - ...options, - }); -}; diff --git a/src/test-utils/test-builders.ts b/src/test-utils/test-builders.ts index fe91ac6bb..21935b74f 100644 --- a/src/test-utils/test-builders.ts +++ b/src/test-utils/test-builders.ts @@ -24,6 +24,7 @@ import { DbSmartContractEvent, DbStxEvent, DbStxLockEvent, + DbTxRaw, DbTxStatus, DbTxTypeId, } from '../datastore/common'; @@ -156,7 +157,7 @@ function testMicroblock(args?: TestMicroblockArgs): DbMicroblockPartial { }; } -export interface TestTxArgs { +export interface TestTxArgs extends Partial { block_hash?: string; block_height?: number; burn_block_time?: number; @@ -199,9 +200,9 @@ function testTx(args?: TestTxArgs): DataStoreTxEventData { tx: { tx_id: args?.tx_id ?? TX_ID, tx_index: args?.tx_index ?? 0, - anchor_mode: 3, + anchor_mode: args?.anchor_mode ?? 3, nonce: args?.nonce ?? 0, - raw_tx: '', + raw_tx: args?.raw_tx ?? '', index_block_hash: args?.index_block_hash ?? INDEX_BLOCK_HASH, block_hash: args?.block_hash ?? BLOCK_HASH, block_height: args?.block_height ?? BLOCK_HEIGHT, @@ -213,18 +214,18 @@ function testTx(args?: TestTxArgs): DataStoreTxEventData { status: args?.status ?? DbTxStatus.Success, raw_result: args?.raw_result ?? '0x0703', canonical: args?.canonical ?? true, - post_conditions: '0x01f5', + post_conditions: args?.post_conditions ?? '0x01f5', fee_rate: args?.fee_rate ?? FEE_RATE, - sponsored: false, - sponsor_address: undefined, + sponsored: args?.sponsored ?? false, + sponsor_address: args?.sponsor_address ?? undefined, sender_address: args?.sender_address ?? SENDER_ADDRESS, - origin_hash_mode: 1, - coinbase_payload: bufferToHex(Buffer.from('hi')), + origin_hash_mode: args?.origin_hash_mode ?? 1, + coinbase_payload: args?.coinbase_payload ?? bufferToHex(Buffer.from('hi')), coinbase_alt_recipient: args?.coinbase_alt_recipient, coinbase_vrf_proof: args?.coinbase_vrf_proof, - event_count: 0, + event_count: args?.event_count ?? 0, parent_index_block_hash: args?.parent_index_block_hash ?? INDEX_BLOCK_HASH, - parent_block_hash: BLOCK_HASH, + parent_block_hash: args?.block_hash ?? BLOCK_HASH, microblock_canonical: args?.microblock_canonical ?? true, microblock_sequence: args?.microblock_sequence ?? 0, microblock_hash: args?.microblock_hash ?? MICROBLOCK_HASH, @@ -239,10 +240,20 @@ function testTx(args?: TestTxArgs): DataStoreTxEventData { execution_cost_runtime: 0, execution_cost_write_count: 0, execution_cost_write_length: 0, + poison_microblock_header_1: args?.poison_microblock_header_1, + poison_microblock_header_2: args?.poison_microblock_header_2, + sponsor_nonce: args?.sponsor_nonce, contract_call_contract_id: args?.contract_call_contract_id, contract_call_function_name: args?.contract_call_function_name, contract_call_function_args: args?.contract_call_function_args, abi: args?.abi, + tenure_change_tenure_consensus_hash: args?.tenure_change_tenure_consensus_hash, + tenure_change_prev_tenure_consensus_hash: args?.tenure_change_prev_tenure_consensus_hash, + tenure_change_burn_view_consensus_hash: args?.tenure_change_burn_view_consensus_hash, + tenure_change_previous_tenure_end: args?.tenure_change_previous_tenure_end, + tenure_change_previous_tenure_blocks: args?.tenure_change_previous_tenure_blocks, + tenure_change_cause: args?.tenure_change_cause, + tenure_change_pubkey_hash: args?.tenure_change_pubkey_hash, }, stxLockEvents: [], stxEvents: [], diff --git a/src/tests/tx-tests.ts b/src/tests/tx-tests.ts index c3cfcdf88..ba61925e9 100644 --- a/src/tests/tx-tests.ts +++ b/src/tests/tx-tests.ts @@ -22,7 +22,7 @@ import { } from '@stacks/transactions'; import { createClarityValueArray } from '../stacks-encoding-helpers'; import { decodeTransaction, TxPayloadVersionedSmartContract } from 'stacks-encoding-native-js'; -import { getTxFromDataStore } from '../api/controllers/db-controller'; +import { getTxFromDataStore, TransactionType } from '../api/controllers/db-controller'; import { DbBlock, DbTxRaw, @@ -2547,6 +2547,85 @@ describe('tx tests', () => { ); }); + test('tx list - filter by tx-type', async () => { + const testSendertAddr = 'ST27W5M8BRKA7C5MZE2R1S1F4XTPHFWFRNHA9M04Y'; + const block1 = new TestBlockBuilder({ + block_height: 1, + index_block_hash: '0x01', + burn_block_time: 1710000000, + }) + .addTx({ + tx_id: '0x1234', + fee_rate: 1n, + sender_address: testSendertAddr, + nonce: 1, + type_id: DbTxTypeId.Coinbase, + }) + .build(); + + await db.update(block1); + + const block2 = new TestBlockBuilder({ + block_height: 2, + index_block_hash: '0x02', + parent_block_hash: block1.block.block_hash, + parent_index_block_hash: block1.block.index_block_hash, + burn_block_time: 1720000000, + }) + .addTx({ + tx_id: '0x2234', + fee_rate: 3n, + sender_address: testSendertAddr, + nonce: 2, + type_id: DbTxTypeId.PoisonMicroblock, + poison_microblock_header_1: '0x01', + poison_microblock_header_2: '0x02', + }) + .build(); + await db.update(block2); + + const block3 = new TestBlockBuilder({ + block_height: 3, + index_block_hash: '0x03', + parent_block_hash: block2.block.block_hash, + parent_index_block_hash: block2.block.index_block_hash, + burn_block_time: 1730000000, + }) + .addTx({ + tx_id: '0x3234', + fee_rate: 2n, + sender_address: testSendertAddr, + nonce: 3, + type_id: DbTxTypeId.TokenTransfer, + token_transfer_amount: 123456n, + token_transfer_memo: '0x1234', + token_transfer_recipient_address: 'ST27W5M8BRKA7C5MZE2R1S1F4XTPHFWFRNHA9M04Y', + }) + .build(); + await db.update(block3); + + const filterTypes: TransactionType[] = ['coinbase', 'poison_microblock', 'token_transfer']; + const txsReq1 = await supertest(api.server).get( + `/extended/v1/tx?type=${filterTypes.join(',')}` + ); + expect(txsReq1.status).toBe(200); + expect(txsReq1.body).toEqual( + expect.objectContaining({ + results: [ + expect.objectContaining({ + tx_id: block3.txs[0].tx.tx_id, + }), + expect.objectContaining({ + tx_id: block2.txs[0].tx.tx_id, + }), + expect.objectContaining({ + tx_id: block1.txs[0].tx.tx_id, + }), + ], + }) + ); + }); + test('fetch raw tx', async () => { const block: DbBlock = { block_hash: '0x1234', From 2bbcb29263d9027e2294f90b46be4658c05df90d Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 14 Aug 2024 16:57:37 +0200 Subject: [PATCH 51/56] chore: expose more helper types to client lib --- client/src/index.ts | 1 + client/src/types.d.ts | 25 ++++++++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/client/src/index.ts b/client/src/index.ts index 347f47a81..6c9b99e04 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -10,3 +10,4 @@ export * from './common'; export * from './socket-io'; export * from './ws'; export type * from './types'; +export * from 'openapi-fetch'; diff --git a/client/src/types.d.ts b/client/src/types.d.ts index 37e877344..99b5cef43 100644 --- a/client/src/types.d.ts +++ b/client/src/types.d.ts @@ -1,14 +1,21 @@ import type { operations } from "./generated/schema"; -export type Transaction = operations['get_transaction_list']['responses']['200']['content']['application/json']['results'][number]; -export type MempoolTransaction = operations['get_mempool_transaction_list']['responses']['200']['content']['application/json']['results'][number]; -export type Block = operations['get_block_by_height']['responses']['200']['content']['application/json']; -export type Microblock = operations['get_microblock_by_hash']['responses']['200']['content']['application/json']; -export type NakamotoBlock = operations['get_block']['responses']['200']['content']['application/json']; -export type BurnBlock = operations['get_burn_blocks']['responses']['200']['content']['application/json']['results'][number]; -export type SmartContract = operations['get_contract_by_id']['responses']['200']['content']['application/json']; -export type AddressTransactionWithTransfers = operations['get_account_transactions_with_transfers']['responses']['200']['content']['application/json']['results'][number]; -export type AddressStxBalanceResponse = operations['get_account_stx_balance']['responses']['200']['content']['application/json']; +type Extract200Response = T extends { 200: infer R } ? R : never; +type ExtractOperationResponse = Extract200Response extends { content: { 'application/json': infer U } } ? U : never; +export type OperationResponse = { + [K in keyof operations]: ExtractOperationResponse; +}; + +export type Transaction = OperationResponse['get_transaction_list']['results'][number]; +export type MempoolTransaction = OperationResponse['get_mempool_transaction_list']['results'][number]; +export type Block = OperationResponse['get_block_by_height']; +export type Microblock = OperationResponse['get_microblock_by_hash']; +export type NakamotoBlock = OperationResponse['get_block']; +export type BurnBlock = OperationResponse['get_burn_blocks']['results'][number]; +export type SmartContract = OperationResponse['get_contract_by_id']; +export type AddressTransactionWithTransfers = OperationResponse['get_account_transactions_with_transfers']['results'][number]; +export type AddressStxBalanceResponse = OperationResponse['get_account_stx_balance']; + export type RpcAddressTxNotificationParams = AddressTransactionWithTransfers & { address: string; tx_id: string; From 918fb4a19f1f3501b0069adcbfc512071a1c408c Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 14 Aug 2024 17:00:35 +0200 Subject: [PATCH 52/56] ci: fix lint and tests --- src/api/schemas/entities/transactions.ts | 2 +- src/test-utils/test-builders.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api/schemas/entities/transactions.ts b/src/api/schemas/entities/transactions.ts index 27d5949c4..a683571e1 100644 --- a/src/api/schemas/entities/transactions.ts +++ b/src/api/schemas/entities/transactions.ts @@ -3,7 +3,7 @@ import { Nullable } from '../util'; import { PostConditionModeSchema, PostConditionSchema } from './post-conditions'; import { TransactionEventSchema } from './transaction-events'; -export const TransactionType = { +const TransactionType = { coinbase: 'coinbase', token_transfer: 'token_transfer', smart_contract: 'smart_contract', diff --git a/src/test-utils/test-builders.ts b/src/test-utils/test-builders.ts index 21935b74f..220c2496f 100644 --- a/src/test-utils/test-builders.ts +++ b/src/test-utils/test-builders.ts @@ -225,7 +225,7 @@ function testTx(args?: TestTxArgs): DataStoreTxEventData { coinbase_vrf_proof: args?.coinbase_vrf_proof, event_count: args?.event_count ?? 0, parent_index_block_hash: args?.parent_index_block_hash ?? INDEX_BLOCK_HASH, - parent_block_hash: args?.block_hash ?? BLOCK_HASH, + parent_block_hash: args?.parent_block_hash ?? BLOCK_HASH, microblock_canonical: args?.microblock_canonical ?? true, microblock_sequence: args?.microblock_sequence ?? 0, microblock_hash: args?.microblock_hash ?? MICROBLOCK_HASH, From 690081df826c1d1b0a8777693430f2ed0954b42f Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 14 Aug 2024 18:27:09 +0200 Subject: [PATCH 53/56] fix: ensure height-or-hash params are parsed correctly and have correct openapi and client types --- client/src/generated/schema.d.ts | 8 +++--- docs/openapi.json | 20 ++++++--------- docs/openapi.yaml | 28 +++++++++------------ src/api/routes/v2/blocks.ts | 10 +++++++- src/api/routes/v2/burn-blocks.ts | 10 +++++++- src/api/routes/v2/schemas.ts | 43 ++++++++++++++------------------ src/datastore/pg-store-v2.ts | 2 -- src/tests/block-tests.ts | 21 ++++++++++++++++ 8 files changed, 82 insertions(+), 60 deletions(-) diff --git a/client/src/generated/schema.d.ts b/client/src/generated/schema.d.ts index 0d975574d..dde513f08 100644 --- a/client/src/generated/schema.d.ts +++ b/client/src/generated/schema.d.ts @@ -27255,7 +27255,7 @@ export interface operations { query?: never; header?: never; path: { - height_or_hash: "latest" | string; + height_or_hash: "latest" | string | number; }; cookie?: never; }; @@ -27321,7 +27321,7 @@ export interface operations { }; header?: never; path: { - height_or_hash: "latest" | string; + height_or_hash: "latest" | string | number; }; cookie?: never; }; @@ -28697,7 +28697,7 @@ export interface operations { query?: never; header?: never; path: { - height_or_hash: "latest" | string; + height_or_hash: "latest" | string | number; }; cookie?: never; }; @@ -28739,7 +28739,7 @@ export interface operations { }; header?: never; path: { - height_or_hash: "latest" | string; + height_or_hash: "latest" | string | number; }; cookie?: never; }; diff --git a/docs/openapi.json b/docs/openapi.json index d91a5948e..c7ff6ee8c 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -118931,13 +118931,12 @@ "type": "string" }, { - "pattern": "^[0-9]+$", "title": "Block height", "description": "Block height", "examples": [ - "777678" + 777678 ], - "type": "string" + "type": "integer" } ] }, @@ -119112,13 +119111,12 @@ "type": "string" }, { - "pattern": "^[0-9]+$", "title": "Block height", "description": "Block height", "examples": [ - "777678" + 777678 ], - "type": "string" + "type": "integer" } ] }, @@ -125609,13 +125607,12 @@ "type": "string" }, { - "pattern": "^[0-9]+$", "title": "Burn block height", "description": "Burn block height", "examples": [ - "777678" + 777678 ], - "type": "string" + "type": "integer" } ] }, @@ -125733,13 +125730,12 @@ "type": "string" }, { - "pattern": "^[0-9]+$", "title": "Burn block height", "description": "Burn block height", "examples": [ - "777678" + 777678 ], - "type": "string" + "type": "integer" } ] }, diff --git a/docs/openapi.yaml b/docs/openapi.yaml index ce80365c9..44a3e4b04 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -79419,12 +79419,11 @@ paths: examples: - daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133 type: string - - pattern: ^[0-9]+$ - title: Block height + - title: Block height description: Block height examples: - - "777678" - type: string + - 777678 + type: integer in: path name: height_or_hash required: true @@ -79554,12 +79553,11 @@ paths: examples: - daf79950c5e8bb0c620751333967cdd62297137cdaf79950c5e8bb0c62075133 type: string - - pattern: ^[0-9]+$ - title: Block height + - title: Block height description: Block height examples: - - "777678" - type: string + - 777678 + type: integer in: path name: height_or_hash required: true @@ -83885,12 +83883,11 @@ paths: examples: - 0000000000000000000452773967cdd62297137cdaf79950c5e8bb0c62075133 type: string - - pattern: ^[0-9]+$ - title: Burn block height + - title: Burn block height description: Burn block height examples: - - "777678" - type: string + - 777678 + type: integer in: path name: height_or_hash required: true @@ -83974,12 +83971,11 @@ paths: examples: - 0000000000000000000452773967cdd62297137cdaf79950c5e8bb0c62075133 type: string - - pattern: ^[0-9]+$ - title: Burn block height + - title: Burn block height description: Burn block height examples: - - "777678" - type: string + - 777678 + type: integer in: path name: height_or_hash required: true diff --git a/src/api/routes/v2/blocks.ts b/src/api/routes/v2/blocks.ts index 08076c8cc..ed7f138e8 100644 --- a/src/api/routes/v2/blocks.ts +++ b/src/api/routes/v2/blocks.ts @@ -1,5 +1,5 @@ import { handleChainTipCache } from '../../../api/controllers/cache-controller'; -import { BlockParamsSchema, parseBlockParam } from './schemas'; +import { BlockParamsSchema, cleanBlockHeightOrHashParam, parseBlockParam } from './schemas'; import { parseDbNakamotoBlock } from './helpers'; import { InvalidRequestError, NotFoundError } from '../../../errors'; import { parseDbTx } from '../../../api/controllers/db-controller'; @@ -92,6 +92,10 @@ export const BlockRoutesV2: FastifyPluginAsync< '/:height_or_hash', { preHandler: handleChainTipCache, + preValidation: (req, _reply, done) => { + cleanBlockHeightOrHashParam(req.params); + done(); + }, schema: { operationId: 'get_block', summary: 'Get block', @@ -117,6 +121,10 @@ export const BlockRoutesV2: FastifyPluginAsync< '/:height_or_hash/transactions', { preHandler: handleChainTipCache, + preValidation: (req, _reply, done) => { + cleanBlockHeightOrHashParam(req.params); + done(); + }, schema: { operationId: 'get_transactions_by_block', summary: 'Get transactions by block', diff --git a/src/api/routes/v2/burn-blocks.ts b/src/api/routes/v2/burn-blocks.ts index 299d5f2fe..93cf8a897 100644 --- a/src/api/routes/v2/burn-blocks.ts +++ b/src/api/routes/v2/burn-blocks.ts @@ -1,6 +1,6 @@ import { handleChainTipCache } from '../../controllers/cache-controller'; import { parseDbBurnBlock, parseDbNakamotoBlock } from './helpers'; -import { BurnBlockParamsSchema, parseBlockParam } from './schemas'; +import { BurnBlockParamsSchema, cleanBlockHeightOrHashParam, parseBlockParam } from './schemas'; import { InvalidRequestError, NotFoundError } from '../../../errors'; import { FastifyPluginAsync } from 'fastify'; import { Type, TypeBoxTypeProvider } from '@fastify/type-provider-typebox'; @@ -51,6 +51,10 @@ export const BurnBlockRoutesV2: FastifyPluginAsync< '/:height_or_hash', { preHandler: handleChainTipCache, + preValidation: (req, _reply, done) => { + cleanBlockHeightOrHashParam(req.params); + done(); + }, schema: { operationId: 'get_burn_block', summary: 'Get burn block', @@ -77,6 +81,10 @@ export const BurnBlockRoutesV2: FastifyPluginAsync< '/:height_or_hash/blocks', { preHandler: handleChainTipCache, + preValidation: (req, _reply, done) => { + cleanBlockHeightOrHashParam(req.params); + done(); + }, schema: { operationId: 'get_blocks_by_burn_block', summary: 'Get blocks by burn block', diff --git a/src/api/routes/v2/schemas.ts b/src/api/routes/v2/schemas.ts index 9285d52b3..8591c6ffa 100644 --- a/src/api/routes/v2/schemas.ts +++ b/src/api/routes/v2/schemas.ts @@ -68,10 +68,11 @@ export type BlockIdParam = | { type: 'hash'; hash: string } | { type: 'latest'; latest: true }; -export function parseBlockParam(value: string): BlockIdParam { +export function parseBlockParam(value: string | number): BlockIdParam { if (value === 'latest') { return { type: 'latest', latest: true }; } + value = typeof value === 'string' ? value : value.toString(); if (/^(0x)?[a-fA-F0-9]{64}$/i.test(value)) { return { type: 'hash', hash: has0xPrefix(value) ? value : `0x${value}` }; } @@ -81,6 +82,19 @@ export function parseBlockParam(value: string): BlockIdParam { throw new Error('Invalid block height or hash'); } +/** + * If a param can accept a block hash or height, then ensure that the hash is prefixed with '0x' so + * that hashes with only digits are not accidentally parsed as a number. + */ +export function cleanBlockHeightOrHashParam(params: { height_or_hash: string | number }) { + if ( + typeof params.height_or_hash === 'string' && + /^[a-fA-F0-9]{64}$/i.test(params.height_or_hash) + ) { + params.height_or_hash = '0x' + params.height_or_hash; + } +} + const BurnBlockHashParamSchema = Type.String({ pattern: isTestEnv ? undefined : '^(0x)?[a-fA-F0-9]{64}$', title: 'Burn block hash', @@ -89,18 +103,16 @@ const BurnBlockHashParamSchema = Type.String({ }); export const CompiledBurnBlockHashParam = ajv.compile(BurnBlockHashParamSchema); -const BurnBlockHeightParamSchema = Type.String({ - pattern: isTestEnv ? undefined : '^[0-9]+$', +const BurnBlockHeightParamSchema = Type.Integer({ title: 'Burn block height', description: 'Burn block height', - examples: ['777678'], + examples: [777678], }); -const BlockHeightParamSchema = Type.String({ - pattern: isTestEnv ? undefined : '^[0-9]+$', +const BlockHeightParamSchema = Type.Integer({ title: 'Block height', description: 'Block height', - examples: ['777678'], + examples: [777678], }); const BlockHashParamSchema = Type.String({ @@ -187,23 +199,6 @@ export const BurnBlockParamsSchema = Type.Object( ); export type BurnBlockParams = Static; -const PoxCycleParamsSchema = Type.Object( - { cycle_number: Type.String({ pattern: '^[0-9]+$' }) }, - { additionalProperties: false } -); -export type PoxCycleParams = Static; - -const PoxCycleSignerParamsSchema = Type.Object( - { - cycle_number: Type.String({ pattern: '^[0-9]+$' }), - signer_key: Type.String({ - pattern: '^(0x)?[a-fA-F0-9]{66}$', - }), - }, - { additionalProperties: false } -); -export type PoxCycleSignerParams = Static; - export const SmartContractStatusParamsSchema = Type.Object( { contract_id: Type.Union([Type.Array(SmartContractIdParamSchema), SmartContractIdParamSchema]), diff --git a/src/datastore/pg-store-v2.ts b/src/datastore/pg-store-v2.ts index 390b8719d..a962fbe4f 100644 --- a/src/datastore/pg-store-v2.ts +++ b/src/datastore/pg-store-v2.ts @@ -12,10 +12,8 @@ import { AddressTransactionParams, PoxCyclePaginationQueryParams, PoxCycleLimitParamSchema, - PoxCycleParams, PoxSignerPaginationQueryParams, PoxSignerLimitParamSchema, - PoxCycleSignerParams, BlockIdParam, } from '../api/routes/v2/schemas'; import { InvalidRequestError, InvalidRequestErrorType } from '../errors'; diff --git a/src/tests/block-tests.ts b/src/tests/block-tests.ts index dccd2c6b5..b5a1b2335 100644 --- a/src/tests/block-tests.ts +++ b/src/tests/block-tests.ts @@ -824,6 +824,27 @@ describe('block tests', () => { expect(json).toStrictEqual(block5); }); + test('blocks v2 retrieved by digit-only hash', async () => { + const block = new TestBlockBuilder({ + block_height: 1, + block_hash: `0x1111111111111111111111111111111111111111111111111111111111111111`, + index_block_hash: `0x1111111111111111111111111111111111111111111111111111111111111111`, + parent_index_block_hash: `0x0000000000000000000000000000000000000000000000000000000000000000`, + parent_block_hash: `0x0000000000000000000000000000000000000000000000000000000000000000`, + burn_block_height: 700000, + burn_block_hash: '0x00000000000000000001e2ee7f0c6bd5361b5e7afd76156ca7d6f524ee5ca3d8', + }).build(); + await db.update(block); + + // Get by hash + const fetch = await supertest(api.server).get( + `/extended/v2/blocks/1111111111111111111111111111111111111111111111111111111111111111` + ); + const json = JSON.parse(fetch.text); + expect(fetch.status).toBe(200); + expect(json.height).toStrictEqual(block.block.block_height); + }); + test('blocks average time', async () => { const blockCount = 50; const now = Math.round(Date.now() / 1000); From 08f74e894f6c98cc3d189fba7e83486ae0c9324d Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 14 Aug 2024 19:28:11 +0200 Subject: [PATCH 54/56] docs: client library migration guide --- client/MIGRATION.md | 70 +++++++++++++++++++++++++++++++++++++++++++ client/README.md | 4 +++ client/src/types.d.ts | 6 +++- 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 client/MIGRATION.md diff --git a/client/MIGRATION.md b/client/MIGRATION.md new file mode 100644 index 000000000..2b5613dbf --- /dev/null +++ b/client/MIGRATION.md @@ -0,0 +1,70 @@ +## @stacks/blockchain-api-client (<=7.x.x) → (8.x.x) + +## Breaking Changes + +This library is now generated with [openapi-typescript](https://openapi-ts.dev/openapi-fetch/) rather than [swagger-codegen](https://github.com/swagger-api/swagger-codegen). Several types which previously presented as the `any` type are now fixed, and the `@stacks/stacks-blockchain-api-types` package is no longer needed. + +#### Configuration & Middleware + +```ts +// old: +import { TransactionsApi, Configuration } from '@stacks/blockchain-api-client'; +const client = new TransactionsApi(new Configuration({ + basePath: 'https://api.mainnet.hiro.so', + middleware: [{ + pre({url, init}) { + init.headers = new Headers(init.headers); + init.headers.set('x-custom-header', 'custom-value'); + return Promise.resolve({ url, init }); + } + }] +})); + + +// new: +import { createClient } from '@stacks/blockchain-api-client'; +const client = createClient({ + baseUrl: 'https://api.mainnet.hiro.so' +}); +client.use({ + onRequest({request}) { + request.headers.set('x-custom-header', 'custom-value'); + return request; + } +}); +``` + +#### Performing Requests + +```ts +// old: +const blockTxs = await client.getTransactionsByBlock({ + heightOrHash: 2000, + limit: 20, + offset: 100 +}); +console.log('Block transactions:', blockTxs); + +// new: +const { data: blockTxs } = await client.GET('/extended/v2/blocks/{height_or_hash}/transactions', { + params: { + path: { height_or_hash: 2000 }, + query: { limit: 20, offset: 100 }, + } +}); +console.log('Block transactions:', blockTxs); +``` + +#### Referencing Types + +```ts +// old: +import { MempoolTransactionStatsResponse } from '@stacks/blockchain-api-client'; +let response: MempoolTransactionStatsResponse; +response = await client.getMempoolTransactionStats(); + +// new: +import { OperationResponse } from '@stacks/blockchain-api-client'; +let response: OperationResponse['/extended/v1/tx/mempool/stats']; +response = (await client.GET('/extended/v1/tx/mempool/stats')).data; +``` diff --git a/client/README.md b/client/README.md index 899c5ef2c..da9522218 100644 --- a/client/README.md +++ b/client/README.md @@ -3,6 +3,10 @@ A JS Client for the Stacks Blockchain API +## Breaking changes from (<=7.x.x) → (8.x.x) + +See [MIGRATION.md](./MIGRATION.md) for details. + ## Features This package provides the ability to: diff --git a/client/src/types.d.ts b/client/src/types.d.ts index 99b5cef43..366a54be3 100644 --- a/client/src/types.d.ts +++ b/client/src/types.d.ts @@ -1,9 +1,13 @@ -import type { operations } from "./generated/schema"; +import type { operations, paths } from './generated/schema'; type Extract200Response = T extends { 200: infer R } ? R : never; type ExtractOperationResponse = Extract200Response extends { content: { 'application/json': infer U } } ? U : never; +type PathResponse = paths[T]['get'] extends { responses: infer R } ? Extract200Response extends { content: { 'application/json': infer U } } ? U : never : never; + export type OperationResponse = { [K in keyof operations]: ExtractOperationResponse; +} & { + [P in keyof paths]: PathResponse

; }; export type Transaction = OperationResponse['get_transaction_list']['results'][number]; From 936c61848c31d6bda4e1cf13b3c08c2bf43816df Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 15 Aug 2024 11:01:19 +0200 Subject: [PATCH 55/56] fix: tx event pagination limit --- src/api/routes/tx.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/api/routes/tx.ts b/src/api/routes/tx.ts index c8ee57582..5e1acb2b5 100644 --- a/src/api/routes/tx.ts +++ b/src/api/routes/tx.ts @@ -215,7 +215,7 @@ export const TxRoutes: FastifyPluginAsync< tags: ['Transactions'], querystring: Type.Object({ tx_id: Type.Array(TransactionIdParamSchema), - event_limit: LimitParam(ResourceType.Tx), + event_limit: LimitParam(ResourceType.Event), event_offset: OffsetParam(), unanchored: UnanchoredParamSchema, }), @@ -225,7 +225,7 @@ export const TxRoutes: FastifyPluginAsync< }, }, async (req, reply) => { - const eventLimit = getPagingQueryLimit(ResourceType.Tx, req.query.event_limit); + const eventLimit = getPagingQueryLimit(ResourceType.Event, req.query.event_limit); const eventOffset = parsePagingQueryInput(req.query.event_offset ?? 0); const includeUnanchored = req.query.unanchored ?? false; req.query.tx_id.forEach(tx => validateRequestHexInput(tx)); @@ -478,7 +478,7 @@ export const TxRoutes: FastifyPluginAsync< tx_id: TransactionIdParamSchema, }), querystring: Type.Object({ - event_limit: LimitParam(ResourceType.Tx), + event_limit: LimitParam(ResourceType.Event), event_offset: OffsetParam(), unanchored: UnanchoredParamSchema, }), @@ -495,7 +495,7 @@ export const TxRoutes: FastifyPluginAsync< return reply.redirect('/extended/v1/tx/0x' + req.params.tx_id + url.search); } - const eventLimit = getPagingQueryLimit(ResourceType.Tx, req.query['event_limit'], 100); + const eventLimit = getPagingQueryLimit(ResourceType.Event, req.query['event_limit'], 100); const eventOffset = parsePagingQueryInput(req.query['event_offset'] ?? 0); const includeUnanchored = req.query.unanchored ?? false; validateRequestHexInput(tx_id); @@ -527,7 +527,7 @@ export const TxRoutes: FastifyPluginAsync< tx_id: TransactionIdParamSchema, }), querystring: Type.Object({ - event_limit: LimitParam(ResourceType.Tx), + event_limit: LimitParam(ResourceType.Event), event_offset: OffsetParam(), }), response: { From cb978001cc235ba2c2d00b212bfc9eb6b4f8cbad Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Thu, 15 Aug 2024 14:43:53 +0200 Subject: [PATCH 56/56] docs: note RPC client library change --- client/MIGRATION.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/MIGRATION.md b/client/MIGRATION.md index 2b5613dbf..013fe3a5f 100644 --- a/client/MIGRATION.md +++ b/client/MIGRATION.md @@ -4,6 +4,9 @@ This library is now generated with [openapi-typescript](https://openapi-ts.dev/openapi-fetch/) rather than [swagger-codegen](https://github.com/swagger-api/swagger-codegen). Several types which previously presented as the `any` type are now fixed, and the `@stacks/stacks-blockchain-api-types` package is no longer needed. + +This repo no longer includes a schema for the Stacks Blockchain RPC interface. An alternative client library for the RPC interface can be found at https://github.com/hirosystems/stacks.js/pull/1737. + #### Configuration & Middleware ```ts